2016-08-17 9 views
0

こんにちは皆、動的な高さをリストビューに設定するのに助けが必要です。動的な高さをリストビューに設定する方法

私のタスクでは、スクロールビュー内にリストビューを表示するので、リストビューに動的な高さを設定して、スクロールビューで作業を完了できるようにする必要があります。

私はhow to change the height of the ListView dynamically in andrtoidから以下のコードを使用しています。 このコードはうまくいきますが、問題はこのコードではリストの表示にdubleの高さを作ることです。唯一3項目リストビューで、それがリストビューの高さが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(); 
     } 
    } 

とIM:

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

     ListViewWelcomePage.setAdapter(simpleadapter); 

     Utility.setListViewHeightBasedOnChildren(ListViewWelcomePage); 
+0

まず、listviewを使用している場合は、Scrollviewを削除してください。デフォルトでは、リストに追加のデータがある場合はスクロールします。 – Tara

+0

私はスクロールビューが必要です。スクロールビューを削除できません。スクロールビューを使用して表示する必要があるリストビューの下に別のアイテムがあるからです。 – sunny

+0

スクロールビューでリストビューを入れ子にする代わりにリストビューでフッターまたはヘッダーを使用します。何か[これ](http://stackoverflow.com/questions/4265228/how-to-add-a-footer-in-listview) – MrOnyszko

答えて

関連する問題