解决ListView嵌套ListView遇到的问题

Listview嵌套会造成的问题主要是子listview的高度错误导致内容不能正常显示完,解决这个问题,我个人第一个想法就是重新计算子listview的高度,代码如下:

private void setListViewHeightBasedOnChildren(ListView listView) {
    if(listView == null) return;

    ListAdapter listAdapter = 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);
}

父listview的adapter中getview方法调用

RelationAdapter relationAdapter = new RelationAdapter(context, model.relations);cell.xlistView.setAdapter(relationAdapter);setListViewHeightBasedOnChildren(cell.xlistView);

注意事项:

Adapter中getView方法返回的View的必须由LinearLayout组成,因为只有LinearLayout才有measure()方法,如果使用其他的布局如RelativeLayout,在调用listItem.measure(0, 0);时就会抛异常。

效果图:

时间: 2024-10-29 00:02:54

解决ListView嵌套ListView遇到的问题的相关文章

android-安卓实现listview嵌套listview

问题描述 安卓实现listview嵌套listview 点击上面的最上面一项里面listview中的哪个小手机删除的时候把下面那一项里面的listview中的三项都删除了 还有就是前面三项都删了的时候删除第四项的时候下标越界 我的思路是我在删除的时候并不知道我删除的到底是那一大项里面的数据. 求解啊 解决方案 安卓LISTVIEW 解决方案二: 你怎么不用 多级列表--ExpandableListView 实现简单方便 解决方案三: 都要实现删除,删除后更新相应的更新不就好了 解决方案四: 不要

ScrollView嵌套ListView的显示不全及滑动问题

问题描述 ScrollView嵌套ListView的显示不全及滑动问题 20C 需求描述:要在一个页面显示比较多的数据,如:旅图详情页面需要显示旅图照片.评论列表等等内容:而且页面可以上下滑动:当个人动态列表滑动到底部时,可以加载更多的评论. 如图-1: 思路分析:因为要在一个页面显示较多的数据,且还有评论列表这样的模块,一下子想到使用ScrollView嵌套ListView,ScrollView可以上下滚动,ListView用于加载评论列表. 发现的问题:按照上面的思路,我做了尝试,发现两个问

图片- Android ListView嵌套GridView点击事件的分发!!!!

问题描述 Android ListView嵌套GridView点击事件的分发!!!! 现在我在实现一个类似朋友圈的功能,布局需要用到ListView嵌套GridView.我也知道这样用不是太好,但这样能够实现需求所以就这样写了.如果哪位有更好的替换的方法,还请赐教.例如:我现在每行显示三张图片,但现在只有一张图片,所以就会有两张图片的位置会空出来.我为了要实现点击图片还能够看大图设置了GridView的onitemclick事件.问题来了,当我点击空白部分的时候,结果还是触发了GridView的

关于Android中ListView嵌套GridView的问题_Android

问题 在Android开发中,遇到一个问题,是ListView嵌套GridView,需要点击整个ListView的Item进行跳转.但是在点击GridView区域时无法进行页面的跳转.这是因为GridView获得了焦点.导致点击无法跳转. 解决方法就是: 1.在Item最外层加上 android:descendantFocusability="blocksDescendants" 2.在Adapter中添加 holder.mGridView.setClickable(false); h

Android-ListView中嵌套(ListView)控件时的问题

当ListView中嵌套了一个Button或者ImageButton时,会让ListView的OnItemClickListener失去效果. 本意是想让ListView中嵌套一个ListView(ListView嵌套ListView),呵呵.结果父View的OnItemClick事件不触发了.郁闷,调查了一下,找到一个解决方案. 1. 在子ListView的XML配置中,最顶层的Layout中增加属性:android:descendantFocusability="blocksDescenda

listview嵌套listview-listview可以嵌套listview吗

问题描述 listview可以嵌套listview吗 现在的需求如图,就是把数据库的数据填入并可以上下按键操作, 我的思路如图所示,大listview嵌套小listview,但是我发现一个问题是给小listview设置适配器后,传入的值与到达小listview getview时的值不一致(值多了好多个,而每一组数据都是乱的,比传入的数据多几个),不知道有没大牛实现过listview嵌套listview的,指点一下,或者说给我个思路实现图上的效果,谢谢各位! 解决方案 没理解你用listview嵌

ListView嵌套在TabActivity里数据不更新解决办法

 ListView嵌套在TabActivity里数据不更新解决办法(暂时解决问题):   TabHost tabHost = getTabHost();      tabHost.addTab(tabHost.newTabSpec("群组名称")     .setIndicator("群组名称")     .setContent(new Intent(this,GroupListActivity.class).addFlags(Intent.FLAG_ACTIVIT

Android 关于嵌套listView时onItemClick事件不响应的解决办法

原文:http://pxq19890719.iteye.com/blog/1168543 当我们使用listView嵌套button或者其它clickable控件时会出现listView的onitemClick事件不响应的问题.我们只需要在item的xml文件中的根布局中加上一句:  android:descendantFocusability="blocksDescendants" 屏蔽item中抢夺focus的控件权限即可解决问题.

ScrollView嵌套ListView滑动冲突的解决方法_Android

ScrollView和ListView这两个控件想必大家都不会陌生,但是这两者嵌套使用的时候就会出现麻烦.比如,我们如果想在ListView下面添加其他的布局或者控件,然后想让它们作为一个整体都可以滑动的话,最常想到的就是用一个ScrollView把它们包裹起来.想法似乎很美好,但是现实就有点残酷了.我们可以写一个小例子体验一下. 首先创建一个Activity,在它的布局文件上放置一个ListView: <?xml version="1.0" encoding="utf