ListView条目显示不全原因及解决方案

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ListView条目显示不全原因及解决方案相关的知识,希望对你有一定的参考价值。

参考技术A 在开发中,如果有ScrollView嵌套ListView后,可能会导致 ListView显示不全,只能显示一条,解决方案有以下2种:

然后在ListView的setAdapter之后,调用这个方法就可以了,数据就可以显示完全:

解决ScrollView下嵌套ListView/GridView进页面不在顶部的问题以及数据显示不全的问题( 只显示一行)

在网上看到如下的解决方案,我现在定义了多个listview,所以出现了有时候起作用有时候不起作用,错误的解决方法如下:

  • 错误解决方案1:

  • 错误解决方案2:

正确解决方案,重写ScrollView,添加如下方法

  • 正确解决方案:
/**
 * 禁止ScrollView内布局变化后自动滚动
 */
@Override
protected int computeScrollDeltaToGetChildRectOnScreen(Rect rect) 
    return 0;

解决了上面的问题,其实在ScrollView镶嵌listview/gridView中最常见的一个问题就是,数据显示不全的问题,网上有如下错误的做法,也是我刚开始做android项目当时的错误解决方法:

  • 错误解决方法1:

正确的解决方案就是重写listview或者gridview

  • 正确几觉方案:
/**
 * 防止listview和gridview、ScrollView的冲突
 * @author zsl
 * @blog http://blog.csdn.net/yy1300326388
 *
 */
public class MyListView extends ListView 

    public MyListView(Context context, AttributeSet attrs) 
        super(context, attrs);
    

    //防止数据显示不全
    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) 
        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
                MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, expandSpec);
    

以上是关于ListView条目显示不全原因及解决方案的主要内容,如果未能解决你的问题,请参考以下文章

ScrollView镶嵌listview显示不全的原因

解决ScrollView下嵌套ListView/GridView进页面不在顶部的问题以及数据显示不全的问题( 只显示一行)

ViewPager中height=wrap_content无效,ScrollView里边用ListView显示不全解决办法

为啥listview在scrollview中显示不全

android AutoCompleteTextView如何设置下拉框每个条目的内容因过长而显示不全的问题

四种方案解决ScrollView嵌套ListView问题