android listview嵌套在滚动条中

使用滚动条容易带来一个后果,就是高度和宽度不受控制了,之前就遇到一个已经有ScrollView的页面需要加个列表listView,然后就发现listView只看到前两行数据,下面的看不到,拉滚动条也只是滚动整个页面,而不是listview。上网搜了下,可以在触摸到listview时,让外面的ScollView交出滚动权限,因为listview自身就有滚动条,还有一种方法就是下面我采用的,容易一点,只要在你给你的listView设置适配器后,再重新设置listview的高度,思路是,算出每行的高度,给listview设置高度为:每行的高度*行数+各行间分隔线的高度,即可。
void setListViewHeightBasedOnChildren(ListView listView) {
   PlAdapter listAdapter = (PlAdapter) 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));
   listView.setLayoutParams(params);
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值