Страница 1 из 1

2 listView на одном Activity

Добавлено: 30 июн 2014, 14:40
Espdroid
Суть... нужно разместить на одном 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-й итем!

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

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

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

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

Добавлено: 30 июн 2014, 17:20
KamiSempai
Так ничего не получится. Нужно использовать адаптер на подобии этого: https://github.com/commonsguy/cwac-merge

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

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