首页
学习
活动
专区
圈层
工具
发布

解决ListView嵌套ListView遇到的问题

Listview嵌套会造成的问题主要是子listview的高度错误导致内容不能正常显示完,解决这个问题,我个人第一个想法就是重新计算子listview的高度,代码如下: private void setListViewHeightBasedOnChildren...(ListView listView) { if(listView == null) return; ListAdapter listAdapter = listView.getAdapter...listView.setLayoutParams(params); } 父listview的adapter中getview方法调用 RelationAdapter relationAdapter...cell.xlistView.setAdapter(relationAdapter);setListViewHeightBasedOnChildren(cell.xlistView); 注意事项: Adapter中getView方法返回的View...的必须由LinearLayout组成,因为只有LinearLayout才有measure()方法,如果使用其他的布局如RelativeLayout,在调用listItem.measure(0, 0);时就会抛异常

2.6K60

android ListView 嵌套 ListView

实现的效果是这个样子的 看上去效果还是不错,不过现在有个刷新问题一直没能解决,刷新的时候里面的adapter进行刷新的时候总是会让里面的listview消失掉,应该是父listview先刷新完后,子...listview还未刷新完成,导致测量的高度不对,就会消失,像当前组已关闭这种,现在这个问题还没有想到办法解决的,试过比较多的方法,添加接口让子listview 刷新完成后再去更新父listview,但还是没有作用...listview是默认不显示的,当点击父listview去张开子listview,父listview应该会再次刷新,但子listview展开是可以的,然后下一次更新数据源的时候子listview又会自动关闭...,我猜应该是在刷新子listview的时候,父listview先更新完成,子listview的高度测量就没有对!...下面是我的源码 listview 嵌套listview都有个高度测量的问题,在更新的时候动态更新子listview就,下面是布局源码 <?

2.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    listview的工作原理

    onDraw()在ListView当中也没有什么意义,因为ListView本身并不负责绘制,而是由ListView当中的子元素来进行绘制的。...如何你到ListView源码中去找一找,你会发现ListView中是没有onLayout()这个方法的,这是因为这个方法是在ListView的父类AbsListView中实现的,代码如下所示: /**...ListView顶部的像素值,pos则是刚刚传入的mFirstPosition的值,而end是ListView底部减去顶部所得的像素值,mItemCount则是Adapter中的元素数量。...onDraw()在ListView当中也没有什么意义,因为ListView本身并不负责绘制,而是由ListView当中的子元素来进行绘制的。...如何你到ListView源码中去找一找,你会发现ListView中是没有onLayout()这个方法的,这是因为这个方法是在ListView的父类AbsListView中实现的,代码如下所示: /**

    2.9K100

    ListView的相关总结

    Android的ListView可以算是最古老的UI控件了, 但是它有很多设计上的思想可以借鉴学习。...LitView的使用 回顾一下, ListView的使用其实非常简单, 只需要提供一个 UI,提供一个装载数据的 Adapter, 在 Adapter的 getView 方法里实现每个 item需要渲染的...我们先回想一个问题, 假设一个列表有 1000 个数据, 那么是否是说 ListView 就有 1000 条 UI呢? 结果当然是否定的, 这样对于内存和CPU是极大的浪费。...ListView的优化 通常在 Android初级的面试中会涉及到这个问题, 就是如何优化 ListView, 一般由浅到深的思路是这样的, · 复用 convertView · 自定义 ViewHolder...用 RecyclerView 替代 ListView ListView的局限 其实 ListView的局限很明显, 最简单的是它不能提前渲染 item, 这就造成当我们尝试用异步的方式来延迟渲染的时候有可能会让

    64920

    listview入门

    Listview组件非常重要,4分之一的时间都是在搞这个,还是通过上一节的数据库,写个for循环,插入50条数据。...获取PersonDao对象,调用dao对象的查询全部的方法,得到一个list集合的数据。 遍历这个集合,遍历中调用person实体类对象的toString()方法,得到一条记录的字符串。...ListView 获取ListView对象,通过findViewById()方法,调用ListView对象的setAdapter(adapter)方法设置数据绑定到ListView,参数是一个ListAdapter...,把我的数据集合定义成成员属性,调用List集合size()方法 getItem(), getItemId() getView(position,) 控制索引位置的View对象,position是当前集合的索引...lv=(ListView) findViewById(R.id.mylist); PersonDao dao=new PersonDao(this); persons=

    1.4K30

    ListView详解

    只是字符串就用ArrayAdapter,用到图文混排的就用自定义的 2.listview的优化(convertView,viewholder) 首先来了解一下ListView的工作原理。...ListView 针对每个item,要求 adapter“返回一个视图” (getView),也就是说ListView在开始绘制的时候,系统首先调用getCount()函数,根据他的返回值得到ListView...的长度,然后根据这个长度,调用getView()一行一行的绘制ListView的每一项。...用convertView减少文件解析次数 Android系统本身为我们考虑了ListView的优化问题,在复写的Adapter的类中,比较重要的两个方法是getCount()和getView()。...最重要的是,这样优化ListView来处理大的列表的最大缺陷是,因为它迫使ListView显示整个项目列表填满由ScrollView 提供的空间。

    1.8K60

    ListView专题

    ListView专题 1.ListView属性: fadingEdge属性 ListView上边和下边有黑色的阴影,android : fadingEdge = "none"后就不会有阴影了 scrollbars...android:drawSelectorOnTop = "false" 点击某条记录不放,颜色会在记录的后面,成为背景色,但是记录内容的文字是可见的 2.ListView.setEmptyView(...)没有效果 有时调用setEmptyView没有效果,这是因为我们设置的这个EmptyView必须和该ListView在同一个布局体系中 如:下面这样的代码有些时候会没有效果 View loadingView...当ListView通过addHeaderView添后,在onItemClick中的position会加上Header的个数,所以这时候在获取数据的时候要对位置进行处理。...match_parent但是上面显示不出来也是由于match_parent的问题, 如果我们将布局中的layout_height="200dip",这样就能够显示出来ViewPager

    1.6K80
    领券