Обычно мы не будем гнездящиеся в ListView в ScrollView, но это нормально, если интервьюер настаивает на том, чтобы я гнездясь.
Добавление ListView в ScrollView приведет к тому, что элемент управления ListView будет неполным, и обычно будет отображаться только один. В чем причина?
Конфликт событий прокрутки между двумя элементами управления приводит к . Следовательно, необходимо вычислить высоту отображения списка обзора по количеству элементов в ListView, чтобы его полностью отображали. Следующий метод предоставлен для вашей ссылки.
Решение заключается в следующем:
lv = (listView) findViewByid (r.id.lv); адаптер = новый myAdapter (); lv.setadapter (адаптер); SetListViewHeightBasedOnChildren (LV); ----------------------------------------------- Public void SetListViewHeightBasedOnChildren (ListView ListView) {ListDapter ListDapter = listView.getAdapter (); if (listAdapter == null) {return; } int totalHeight = 0; for (int i = 0; i <listAdapter.getCount (); i ++) {view listitem = listDapter.getView (i, null, listView); listitem.measure (0, 0); totalHeight += listItem.getMeasuredHeight (); } Viewgroup.layoutparams params = listView.getLayoutParams (); params.height = totalHeight + (listView.getDividerHeight () * (listAdapter.getCount () - 1)); Params.height += 5; listView.setLayoutParams (params); }Лучший способ справиться с этим на этом этапе: Custom ListView, перегрузка метода OnMeasure () и установить все отображения.
Import Android.widget.listView; / ** * * @description: простая реализация встроенного списка в Scrollview * * @file: scrollviewwithlistview.java * * * @version */ public class scrollviewwithlistview extends listview {public scrollviewWithListsist (android.content.context stectlect, android.ut.attritset attropliblistlist (android.content.context, android. } / ** * integer.max_value >> 2. Если не установлено, настройка системы по умолчанию - отображение двух частей * / public void onmeasure (int widthmeasperspec, int heightmeaspecpec) {int expandspec = semerspec.makemeaspecpec (integer.max_value >> 2, semerspec.atse); Super.Onmeasure (Widthmeasurespec, ExpandSpec); }}Приведенный выше контент является решением Enced ListView в ScrollView, которое редактор представил вам. Я надеюсь, что это будет полезно для всех!