Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android中scrollview包含listView對高度設置

android中scrollview包含listView對高度設置

編輯:關於Android編程

當scrollview中包含listView時,滑動的時候會出現問題。。最常見的問題是listview滑動不了。。。問題原因是在加載listview時它的高度應該按照adapter所綁定的數據來確定,而不是fill_parent或者是wrap_content...

項目中用到了就把它抽取出來做個記錄

import android.view.View;
import android.view.ViewGroup;
import android.widget.ListAdapter;
import android.widget.ListView;

public class ListViewUtils {
    public void setListViewHeightBasedOnChildren(ListView listView) {
        // 獲取ListView對應的Adapter
        ListAdapter listAdapter = listView.getAdapter();
        if (listAdapter == null) {
            return;
        }

        int totalHeight = 0;
        for (int i = 0, len = listAdapter.getCount(); i < len; i++) { // listAdapter.getCount()返回數據項的數目
            View listItem = listAdapter.getView(i, null, listView);
            listItem.measure(0, 0); // 計算子項View 的寬高
            totalHeight += listItem.getMeasuredHeight(); // 統計所有子項的總高度
        }

        ViewGroup.LayoutParams params = listView.getLayoutParams();
        params.height = totalHeight
                + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
        // listView.getDividerHeight()獲取子項間分隔符占用的高度
        // params.height最後得到整個ListView完整顯示需要的高度
        listView.setLayoutParams(params);
    }
}
具體用法是當我們的listview綁定數據adapter之後通過該util來重新動態確定高度

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved