Страницы

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

пятница, 10 января 2020 г.

Android: ListView внутри ScrollView - нельзя. Чем заменить ListView?

#java #android #listview #android_scrollview


Везде пишут, что такое делать нельзя. Но тогда каким образом можно на андроиде реализовать
такое (из моего приложения для iOS):



(текст и tableview - аналог listview для андроид, преспокойно скролятся вместе внутри
одного scrollview).
    


Ответы

Ответ 1



Можно использовать LinearLayout вместо ListView LinearLayout linearLayout = (LinearLayout) findViewById(...); LayoutInflater inflater = LayoutInflater.from(this); for (item in arrayList) { View view = inflater.inflate(R.layout.row, linearLayout, false); linearLayout.addView(view) } Или с адаптером LinearLayout layout = ... ListAdapter adapter = ... final int adapterCount = adapter.getCount(); for (int i = 0; i < adapterCount; i++) { View item = adapter.getView(i, null, null); layout.addView(item); }

Ответ 2



Если у вас в ScrollView находится что-то сверху, а всё остальное - ListView, то самым простым решением будет: Поместить всё, что выше ListView в отдельный layout файл. Убрать ScrollView. Поместить разметку из п.1 в ListView методом addHeader(View v) класса ListView. Итого:никакого шаманства с библиотеками, переопределениями клсассов, измерениями разметки в рантайме и минимум изменений в коде.

Ответ 3



Используйте RecyclerView

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

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