如果在一个layout里面需要定义有两个listview,那么显示的时候会不协调,在google上搜了一下,发现有人已经解决了这个问题,但是我还是想把这么好的方法记录下来,分享给大家。

1.在layout里面定义两个listview:

    <ListView        android:id="@+id/ipcamListView"        android:layout_width="fill_parent"        android:layout_height="fill_parent"        style="@style/RectListView">    </ListView>    <ListView        android:id="@+id/sensorListView"        android:layout_width="match_parent"        android:layout_height="wrap_content"         style="@style/RectListView" >    </ListView>

2.定义个类用来处理listview之间的布局

    public static void setListViewHeightBasedOnChildren(ListView listView) {        ListAdapter listAdapter = listView.getAdapter();        if (listAdapter == null) {            // pre-condition              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));        listView.setLayoutParams(params);    }

3.最后在重写view方法的里面调用这个方法就行了

setListViewHeightBasedOnChildren(holder.sensorListView);        ((ViewPager) container).addView(convertView, 0);

更多相关文章

  1. Android自定义View-圆形图片控件
  2. 宏定义中的特殊参数(#、##、...和__VA_ARGS__)
  3. android 小练习(一) ---仿微信UI主界面
  4. kotlin技巧和细节整理
  5. Android文件存储和读取方式
  6. Android面试题小结
  7. Android(安卓)Window与WindowManager 理解与源码分析
  8. android:OKHttp的使用
  9. Android倒计时神器(CountDownTimer)

随机推荐

  1. 详解 Android(安卓)的 Activity 组件
  2. Android实现导航菜单左右滑动效果
  3. Android开发学习之Animation之Android帧
  4. Android的多语言文件转IOS多语言文件格式
  5. C#开发Android
  6. .Myeclipse中配置ADT
  7. 安卓系统框架介绍
  8. Android(安卓)Wifi获取组播
  9. android webview中js交互、第三方分享。
  10. textview中自动换行显示文本内容