2016-08-17 5 views
0

привет всем, кому нужна помощь, чтобы установить динамическую высоту в список.Как настроить динамическую высоту для представления списка

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

Im, используя приведенный ниже код от how to change the height of the ListView dynamically in andrtoid. Этот код работает хорошо, но проблема заключается в этом коде, что делает высоту разреза для просмотра списка.

предположит, если только 3 пунктов в списке, то это сделать высоту ListView равна 6 пунктов.

Я хочу знать, как его решить.

Вот мой код.

public class Utility { 
     public static void setListViewHeightBasedOnChildren(ListView listView) { 
      ListAdapter listAdapter = listView.getAdapter(); 
      if (listAdapter == null) { 
       // pre-condition 
       return; 
      } 

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

      ViewGroup.LayoutParams params = listView.getLayoutParams(); 
      params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); 
      listView.setLayoutParams(params); 
      listView.requestLayout(); 
     } 
    } 

И им, используя его в списке следует деятельности, как:

SimpleAdapter simpleadapter = new SimpleAdapter(getApplicationContext(), alist, R.layout.fragmentsrow, getItems, setItems); 

     ListViewWelcomePage.setAdapter(simpleadapter); 

     Utility.setListViewHeightBasedOnChildren(ListViewWelcomePage); 
+0

Прежде всего, если вы используете listview, тогда удалите Scrollview. По умолчанию, если в списке больше данных, оно будет прокручиваться. – Tara

+0

Мне нужен просмотр прокрутки, я не могу удалить прокрутку, потому что есть другие элементы под списком, которые мне нужно отображать с помощью прокрутки. – sunny

+0

Используйте нижний колонтитул или заголовок в виде списка, а не в виде списка в виде прокрутки. Что-то вроде [this] (http://stackoverflow.com/questions/4265228/how-to-add-a-footer-in-listview) – MrOnyszko

ответ

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