ScrollView嵌套listview,gridview后,页面不在顶部

描述:
Scrollview里面嵌套了一个listview ,遇到的问题是:在这个Scrollview页面默认的起始位置不是最顶部。
原因:
1,在Activity计算窗口的高度时,是在listview没有填充数据时候就完成的,由于ScrollView嵌套listview时没有指定高度,所以ScrollView就会按照layout中定义的默认高度计算。
2, 因为listview获取了焦点。

解决:

  1. myScrollView.smoothScrollTo(0,0);
    需在listview数据加载完成后调用或
mScroll.post(new Runnable() {
            @Override
            public void run() {
                mScroll.smoothScrollTo(0,0);
            }
        });
  1. 在代码里去掉listview的焦点
        lv.setFocusable(false);
  1. Listview外套一层LinearLayout

  2. 跟EditText一样,在父元素的属性下面下下面这两行即可

        android:focusableInTouchMode=”true”
        android:focusable=”true”
  1. 最开始的时候让最上面其中一个控件获得焦点,滚动条自然就到顶部去了,如下:
        txtBaseMsg.setFocusable(true);
        txtBaseMsg.setFocusableInTouchMode(true);
        txtBaseMsg.requestFocus();
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,093评论 25 709
  • 本来以为自己心里不在乎了但还是上着上着课就哭出来了,看到眼前的ppt想起一起学习的时候,甚至看到手机上的qq微信也...
    文晓溏阅读 530评论 0 0
  • 作者/胄宁 十里烟花弥漫的宫阙, 依稀记得那垆边人似月。 似月般纯净, 似月般皎洁, 似月般朦胧, 也似月般凄切。...
    胄宁阅读 256评论 6 3
  • 昵称:一个咸咸的苹果派 地点:上海,成都 星座:90年金牛座 交友宣言:希望我们能像高考答卷一样的认真找到合适的T...
    saltapplepiejia阅读 239评论 0 0
  • 最爱在阳光明媚的下午,循着弯弯的园路拾级而上,花儿舞动着身躯,缓缓地归于大地的怀抱,细嗅着生命中独特的芬芳,触摸着...
    f48cc0949268阅读 251评论 0 0