Android经验ScrollListView嵌套ListView显示不全的问题

来源:互联网 发布:干淘宝售后客服怎么样 编辑:程序博客网 时间:2024/05/17 09:30

对于初学者来说,这种问题应该很常见。因为做过项目的开发者都知道这些布局是很常见的,像论坛评论区,视频播放评论区,菜单步骤显示区等等,都会用到这种布局。但是如果我们单纯的使用ScrollListView嵌套一个ListView就会出现ListView只是显示一个Item,只有下拉才能显示,这完全不是我们想要的效果。出现这种问题的原因就是我们没有给ListView设置高度,解决这个问题的方法就是知道我们要显示的ListView有多高。这个方法也是我看的别人的方法实现的,感觉特别好用,就想写下来提供给有需要的开发者们。

首先我们要写一个工具类

public class NoScrollListView extends ListView {    public NoScrollListView(Context context, AttributeSet attrs, int defStyle) {        super(context, attrs, defStyle);        // TODO Auto-generated constructor stub    }    public NoScrollListView(Context context, AttributeSet attrs) {        super(context, attrs);        // TODO Auto-generated constructor stub    }    public NoScrollListView(Context context) {        super(context);        // TODO Auto-generated constructor stub    }    @Override    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);        super.onMeasure(widthMeasureSpec, expandSpec);    }}
然后我们就可以在布局里面使用了,就像这样:
<module.tradecore.utils.NoScrollListView    android:id="@+id/pinkong_list"    android:layout_width="match_parent"    android:layout_height="wrap_content"></module.tradecore.utils.NoScrollListView>

module.tradecore.utils.NoScrollListView ,这个是自己写的工具类的路径。因为这个类是继承的ListView,所以和ListView的
用法没有任何区别。
然后你再运行项目,你就会发现已经达到了你想要的效果。 


阅读全文
0 0
原创粉丝点击