Android 开发中一些不得不知的坑(二)

如何正确的在ScrollView里做嵌套

日常开发中,经常会遇到ScrollView嵌套ListView,GridView或者是ViewPager,更有甚者是ScrollView嵌套ScrollView,这样一来必然会导致一系列的问题,比如ListView显示不全,滑动冲突等等。这里就各种坑做一下总结。

嵌套的内容不可见

第一次遇见这种嵌套时,就是很单纯的在ScrollView里套了一个ListView,结果就是ListView只显示一行,当时还一直以为是Adapter没写好,各种调试,后来才想到这种嵌套的问题,各种百度之后解决,后来学聪明了,嵌套在ScrollView里的控件,一般都需要继续后自己动动手脚。

常见的解决办法

  • 重写onMeasure方法
@Override

/**   重写该方法,达到使ListView适应ScrollView的效果   */ 

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,

MeasureSpec.AT_MOST);

super.onMeasure(widthMeasureSpec, expandSpec);

}

还有一种情况是,ScrollView里嵌套的ViewPager不可见了,除非将ViewPager高度设置成固定值,但在实际当中,这完全是不可取的,这个时候就需要给

  • ScrollView设置属性

android:fillViewport=”true”

再有一种情况就是第一次进入界面时动态加载listview的items后页面会跳转到listview的第一个子项,这个问题其实特别令人无语,尤其当下应用都是多个Fragment切换,每次一次都会莫名其妙的跳转到ListView的第一行。关于这个问题的解决方法是,在findViewByID获取到这个ListView后,做如下处理;

  • listView实现方法
listview.setFocusable(false);

好了,就下记下这些坑,以后遇到的继续记。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阎楠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值