关于listview,gridview里面数据显示不全的问题

listview,girdview这些控件在我们android开发经常用的到,但是,数据显示不全的问题也是我们经常碰到的,下面只要在代码中加入几行代码即可

以下方法仅供参考,转自网络

listview控件显示数据

private void listFitHeight(ListView listView){
    RepairDetailInfosAdpter listAdapter=(RepairDetailInfosAdpter)listView.getAdapter();
    if(listAdapter==null){
        return;
    }
    int totalHeight=0;
    for(int i=0;i<listAdapter.getCount();i++){
        View listItem=listAdapter.getView(i,null,listView);
        listItem.measure(0,0);
        totalHeight+=listItem.getMeasuredHeight();
    }
    ViewGroup.LayoutParams params=listView.getLayoutParams();
    params.height=totalHeight+(listView.getDividerHeight()*(listAdapter.getCount()-1));
    ((ViewGroup.MarginLayoutParams)params).setMargins(0,0,0,0);
    listView.setLayoutParams(params);

}

gridview控件显示数据

private static void setListViewHeightBasedOnChildren(GridView listView, int col) {
    //获取listview的adapter
    ListAdapter listAdapter = listView.getAdapter();
    if (listAdapter == null) {
        return;
    }
    //固定列宽,有多少列
    //intcol=3;//listView.getNumColumns();
    int totalHeight = 0;
    //i每次加4,相当于listAdapter.getCount()小于等于4时循环一次,计算一次item的高度,
    //listAdapter.getCount()小于等于8时计算两次高度相加
    for (int i = 0; i < listAdapter.getCount(); i += col) {
   //获取listview的每一个item
        View listItem = listAdapter.getView(i, null, listView);
        listItem.measure(0, 0);
   //获取item的高度和
        totalHeight += listItem.getMeasuredHeight();
    }

   //获取listview的布局参数
    ViewGroup.LayoutParams params = listView.getLayoutParams();
   //设置高度
    params.height = totalHeight;
   //设置margin
    ((ViewGroup.MarginLayoutParams) params).setMargins(10, 10, 10, 10);
   //设置参数
    listView.setLayoutParams(params);
}
发布了27 篇原创文章 · 获赞 7 · 访问量 11万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章