在开发中,ListView是使用得最多的控件,有时候会遇到ListView因为各种原因引起的数据显示不全,例如,嵌套了ScrollView等。这个解决的办法很多,这里记录一下我自己用过的方法,本人亲测有效。
第一种:

/*** 设置listview高度的方法* @param listView*/
public void setListViewHeight(ListView listView) {//获取ListView对应的AdapterListAdapter listAdapter = listView.getAdapter();if (listAdapter == null) {return;}int totalHeight = 0;for (int i = 0; i < listAdapter.getCount(); i++) {//listAdapter.getCount()返回数据项的数目View listItem = listAdapter.getView(i, null, listView);   //获得每个子item的视图listItem.measure(0, 0);   //先判断写入的widthMeasureSpec和heightMeasureSpec是否和当前的值相等,如果不等,重新调用onMeasure(),计算子项View 的宽高totalHeight += listItem.getMeasuredHeight();   //累加不解释,统计所有子项的总高度}ViewGroup.LayoutParams params = listView.getLayoutParams();params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));   //加上每个item之间的距离,listView.getDividerHeight()获取子项间分隔符占用的高度listView.setLayoutParams(params);//params.height最后得到整个ListView完整显示需要的高度
}

  这个方法需要在ListView.setAdapter(adapter)之后调用,这样就可以把数据显示完全了,这个方法可以写到工具类里面,然后直接调用。

第二种方法:

    /**** 設置listview的高度結局滑動衝突* * @param statisticsTO*/public void setListvHeight(StatisticsTO statisticsTO) {int size = statisticsTO.getData().size();int totalHeight = 0;for (int i = 0; i < size; i++) {View listItem = myAdapter.getView(i, null,liststatistics);listItem.measure(0, 0);totalHeight += listItem.getMeasuredHeight();}ViewGroup.LayoutParams params = liststatistics.getLayoutParams();params.height = totalHeight+ (liststatistics.getDividerHeight() * (size - 1));liststatistics.setLayoutParams(params);}

这种方法其实和第一种方法是类似的,只不过这里传入的是数据的实体。

第三种方法:
  第三种方法就是自定义ListView,然后重写onMeasure方法,这个可以解决ListView的滑动冲突,百度上说的最多的就是这种方法。

public class CustomListView extends ListView{public CustomListView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int spec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE>>2, MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, spec);
}
}

转载自 :http://blog.csdn.net/u014727709/article/details/76423318
欢迎start,欢迎评论,欢迎指正

解决ListView显示不全、滑动冲突问题相关推荐

  1. Android开发之解决ListView和ScrollView滑动冲突的方法

    我们看下图: 不管怎么滑动都无法显示listview的剩余数据,只能显示一条,我们看下布局,ScrollView里面嵌套ListView <?xml version="1.0" ...

  2. 【Android 手势冲突】Colin带你彻底解决RecyclerView与ScrollView滑动冲突问题,并实现RecyclerView悬停导航栏(附demo哦)

    在新一期的需求中,产品要求我们做出和美团某个页面类似的功能,即一个页面包含在scrollView中,上面一个部分放置一些常用的广告banner.宫格tab等,下面放置一个RecyclerView用于展 ...

  3. 解决SwipeRefreshLayout与Banner滑动冲突

    import android.content.Context; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import ...

  4. html2canvas+jspdf 完美解决html导出且分页 解决图片显示不全问题

    html2canvas+jspdf 完美解决html导出且分页 解决图片显示不全问题 参考文章: (1)html2canvas+jspdf 完美解决html导出且分页 解决图片显示不全问题 (2)ht ...

  5. 电脑ping服务器ip显示数据丢失,Win7系统如何测试网络丢包率解决网页显示不全的问题...

    Win7系统在上网过程中打开网页经常遇到网页显示不全,或者玩游戏卡顿的现象,但是过一会儿又恢复了.怎么回事呢?可能是因为网络丢包率太高导致的,我们可以Ping一下网络,找到故障原因.那么接下来小编和大 ...

  6. 解决ScrollView与ViewPage滑动冲突的问题

    2019独角兽企业重金招聘Python工程师标准>>> <?xml version="1.0" encoding="utf-8"?> ...

  7. android scrollview listview显示不全

    原来处理方法是重写ListView import android.content.Context; import android.util.AttributeSet; import android.v ...

  8. 使用LinearLayout实现ListView,解决ListView和ScrollView滚动冲突

    在项目中,我们常常会遇到一个ScrollView里面会嵌套ListView的情况,但往往你会发现,ListView和ScrollView的滚动时间会有冲突问题,造成ListView不能完全显示.虽然网 ...

  9. 解决AppBarLayout嵌套WebView滑动冲突的问题

    首先,自定义WebView import android.content.Context; import android.util.AttributeSet; import android.view. ...

最新文章

  1. 用神经网络分类无理数2**0.5和3**0.5
  2. c# 调用c++DLL方法及注意事项
  3. 八、深入Go 编程语言接口
  4. Nginx(四):Nginx配置实战
  5. Name node is in safe mode解决
  6. Insta360:从软到硬,一年做出360°全景相机,中间填了多少坑?
  7. matlab常用函数——软件常用函数
  8. Linux NULL定义
  9. 开发原生的 Google 眼镜应用 【已翻译100%】(2/2)
  10. Java单机部署,Nacos docker单机模式部署实现过程详解
  11. 【Spark调优】内存模型与参数调优
  12. java正则表达式验证_Java中的正则表达式电话号码验证
  13. 《学习的本质》读后感
  14. ftp服务器21端口无法连接
  15. Invalid initial heap size: -Xms
  16. day13_spring环境配置及bean使用
  17. 病毒木马查杀实战第024篇:MBR病毒之编程解析引导区
  18. Linux定时器alarm()用法讲解
  19. 基于Markdown 搭建自己的博客,哪个工具好?
  20. 数字货币的路在哪里?

热门文章

  1. 风口起落的背后,是6271家创业公司的消亡
  2. android发布市场,TWS耳机集中发布,安卓阵营搅动市场
  3. WP免费主题,wordpress免费主题,WP建站主题
  4. 【P5850】calc 加强版(生成函数)(多项式)
  5. 改造WinRE 从隐藏分区安装Win7
  6. win 通过 Distro 安装 linux 子系统
  7. 004---css样式表(内部样式表、行内样式表、外部样式表)
  8. 关于Flash的几点思考(Thoughts on Flash)
  9. 儿童学计算机编程好处,孩子学编程的好处和坏处
  10. 花季美少女和小米官网你选哪个?