关于ScrollView嵌套ListView和GridView最常见的两种问题

来源:互联网 发布:素描大师软件下载 编辑:程序博客网 时间:2024/06/06 13:33

在Android开发中ListView和GridView、RecyclerView的使用是不可避免的,但是这些控件又只能以列表的形式来展示,这样就有很大的局限性,好在Android提供了ScrllView来进行多空间组合,实现滑动的效果,说以ScrllView嵌套这些布局已经不可避免。

同样是滑动界面,这样就会出现冲突,今天就来说说ScrllView嵌套这些布局最经常需要解决的问题;

1、ScrllView嵌套ListView会出现只显示一行Iten的问题,这样就很焦灼了啊,显示不完全其他地方是空白。(我觉得产品经理看到会打死我,所以还是要账号解决办法啊)

解决办法其实很简单:自定义ListView重新计算每一个Item的高度;

自定义ListView重新onMeasure方法:

@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE>>2,MeasureSpec.AT_MOST);        super.onMeasure(widthMeasureSpec, expandSpec);}
这样就解决了Lis他View显示不完全的问题。
    2、ScrllView嵌套还会出现的问题是,自定义ListView之后,可以完全显示,但是如果我们在ListView上面添加一个Viewpager的
话(当然ViewPager只是举个例子,你可能会添加其他的控件),我们在页面加载好之后会发现出现在ListView的位置,而ViewPager测会
被滑出屏幕,这样就很僵硬啊!
    解决办法:在ScrllView的父类布局的XML中添加:
android:focusable="true"android:focusableInTouchMode="true"
   或者在代码中添加是设置listView:
   listView.setFocusable(false);
   之所以出现这种情况是因为页面加载进来之后焦点会聚焦在ListView上面,我们只需要取消ListView的焦点,或者 
把焦点聚焦在S从rollView上面即可

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