2 listView на одном Activity

Интерфейс, диалоги, темы, стили, меню
Ответить
Espdroid
Сообщения: 3
Зарегистрирован: 30 июн 2014, 14:20

2 listView на одном Activity

Сообщение Espdroid » 30 июн 2014, 14:40

Суть... нужно разместить на одном Activity компоненты:
Заголовок 1 (TextView)
ListView 1
Заголовок 2 (TextView)
ListView 2
Как известно с ListView нельзя использовать ScrollView и проблема в том что нужен единый скрол для всего экрана.

Пробовал варианты:
1. Всё-таки использовать ScrollView, изначально задав для ListView размер (Height) через следующий метод:

Код: Выделить всё

	public static void setListViewHeightBasedOnChildren(ListView listView) {

	    ListAdapter listAdapter = listView.getAdapter();
	    if (listAdapter == null) {

	        return;
	    }

	    int totalHeight = 0;
	    int desiredWidth = MeasureSpec.makeMeasureSpec(listView.getWidth(), MeasureSpec.UNSPECIFIED);
	    for (int i = 0; i < listAdapter.getCount(); i++) {
	        View listItem = listAdapter.getView(i, null, listView);
	        listItem.measure(desiredWidth, MeasureSpec.UNSPECIFIED);
	        totalHeight += listItem.getMeasuredHeight();
	    }

	    ViewGroup.LayoutParams params = listView.getLayoutParams();
	    params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
	    listView.setLayoutParams(params);
	    listView.requestLayout();
	}
но это привело к тормозам при большом кол-ве итемов списка.

2. Использовал Header и Footer как в уроке:
http://startandroid.ru/ru/uroki/vse-uro ... apter.html
т.е. 1-й заголовок header, 2-й заголовок и ListView2 в Footer - но так в ListView2 отображается только один, 1-й итем!

Как правильно это реализовать ??

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: 2 listView на одном Activity

Сообщение altwin » 30 июн 2014, 17:17

в чем проблема я так и не понял... создайте 2 linearlayout c android:layout_weight="1", допускается же любой уровень вложенности, по поводу тормозов - правильно нефик грузить все, загружать нужно динамически по мере прокрутки. А вообще я так и не понял сути.. вам нужно чтобы вложенный скрол был? тогда вам виджет нужен по типу datepicker
Изображение

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: 2 listView на одном Activity

Сообщение KamiSempai » 30 июн 2014, 17:20

Так ничего не получится. Нужно использовать адаптер на подобии этого: https://github.com/commonsguy/cwac-merge
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Espdroid
Сообщения: 3
Зарегистрирован: 30 июн 2014, 14:20

Re: 2 listView на одном Activity

Сообщение Espdroid » 01 июл 2014, 07:06

KamiSempai писал(а):Так ничего не получится. Нужно использовать адаптер на подобии этого: https://github.com/commonsguy/cwac-merge
спасибо, всё получилось!

Ответить