2012-05-13 2 views
1

У меня есть 2 пользовательских ListView Создано как макет элементов + ArrayAdapter + Мой собственный класс ListView. Затем я использую этот ListView в моей основной раскладке следующий путь:Android вложенные пользовательские ListView

<MyListViewFirst 
     android:id="@+id/MyListView1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 

Этот MyListViewFirst содержит Layout1 с одним текстовым полем (справа), а другой ListView - MyListViewSecond внутри:

<MyListViewSecond 
     android:id="@+id/MyListView2" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical" 
     android:layout_weight="18" /> 

Когда я вижу в Layout1, мои TextView и MyListViewSecond подходят для страницы не в зависимости от количества строк MyListViewSecond.

Но когда я просматриваю свой основной макет в каждом элементе MyListViewFirst, TextView действительно подходит к элементу, но MyListViewSecond не показывает - он отображает только несколько элементов.

Похоже, что он соответствует высоте TextView, и мне нужна максимальная высота - MyListViewSecond со всей внутренней высотой элементов.

Итак, как я могу отобразить все элементы во внутреннем списке ListView?

Пример: enter image description here

ответ

4

Вы действительно не должны поместить ListView внутри другой ListView. Это даст вам плохую производительность, и это тоже нехорошее решение для пользователей - им будет сложно использовать. Я бы посоветовал вам пересмотреть свой дизайн и реализовать его лучшим способом, который не использует вложенный ListViews.

Это не ответ на ваш вопрос, но я не думаю, что кто-то выиграет от фактического ответа, так как ваша реализация проекта будет очень неэффективной, сложной в использовании и против рекомендаций по разработке Android.

Возможно, вам стоит рассмотреть возможность взглянуть на ViewPager и посмотреть, можете ли вы как-то изменить свой дизайн, чтобы использовать его вместо этого.

+0

Я бы тоже хотел использовать фрагменты, но я разработал это для уровня API 8. Но, в любом случае, я думаю, что я просто использую подсчитанное количество элементов вместо первого ListView. – Ksice

+0

. Вы можете использовать библиотеку совместимости:) –

Смежные вопросы