NestedScrollView嵌套ListView滑動沖突


    時間:2015年12月22日16:12:34

  1. 問題描述:
         1)  在android.support.v4.widget.NestedScrollView中直接嵌套ListView時出現的情況:listview顯示不全只有一行或者兩行。
         2) 如果listview的item中有根據id選擇選項會導致選擇錯亂,現在(2015年12月22日16:13:55)碰到的問題是:listview中包含有switch控件,
              用來對該item是否可用進行判斷,但是現在沖突導致的listview中位置錯亂。

    2.解決方法:   計算出每一個item的高度,此方法用在listview.setAdapter()后。         
         
     
   
   
   
           
  1. private void setListViewHeightBasedOnChildren(ListView listView) {
  2. ListAdapter listAdapter = listView.getAdapter(); //獲得Adapter
  3. if (listAdapter == null) { //判斷是否為空
  4. return;
  5. }
  6. int totalHeight = 0; //定義總高度
  7. //根據listAdapter.getCount()獲取當前擁有多少個item項,然后進行遍歷對每一個item獲取高度再相加最終獲得總的高度。
  8. for (int i = 0; i < listAdapter.getCount(); i++) {
  9. View listItem = listAdapter.getView(i, null, listView);
  10. listItem.measure(0, 0);
  11. totalHeight += listItem.getMeasuredHeight();
  12. }
  13. //獲取到list的布局屬性
  14. ViewGroup.LayoutParams params = listView.getLayoutParams();
  15. //listview最終高度為item的高度+分隔線的高度,這是重新設置listview的屬性
  16. params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
  17. //將重新設置的params再應用到listview中
  18. listView.setLayoutParams(params);
  19. }










免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM