Страницы

Поиск по вопросам

пятница, 13 марта 2020 г.

ListView в LinearLayout отображает только один элемент списка

#java #android #listview #android_linearlayout


Я использую xml парсер для вывода информации в ListView, xml код 



        

            

        

      


Этим кодом я добавляю в лист объекты парсера

XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
                factory.setNamespaceAware(true);
                XmlPullParser parser = factory.newPullParser();
                URL input = new URL("news.xml");
                parser.setInput(input.openStream(), null);
                while (parser.getEventType() != XmlPullParser.END_DOCUMENT)
                {
                    if (parser.getEventType() == XmlPullParser.START_TAG && parser.getName().equals("contact"))
                    {
                        list.add(parser.getAttributeValue(0) + "\n" + "\n"
                                + parser.getAttributeValue(1) + "\n");
                    }
                    parser.next();
                }


При простейщем тесте все объекты на месте, но в данном случае показывается только
один.  На сколько я понимаю - при каждом добавлении объекта нужно создавать новый LinearLayout
вместе с виджетом и списком? не могу понять, как это сделать
    


Ответы

Ответ 1



Проблема решена. добавил этому элементу NestedScrollView аттрибут fillViewport="true", теперь все отображается корректно, и все новости работают

Ответ 2



У вас у CardView высота по высоте содержимого. А она равна высоте одного элемента списка. Так что замените android:layout_height="wrap_content" на android:layout_height="match_parent"

Комментариев нет:

Отправить комментарий