美文网首页
NestedScrollView嵌套常见问题

NestedScrollView嵌套常见问题

作者: 3Q竹林 | 来源:发表于2018-10-30 14:24 被阅读57次

    文章来自:ProcessZ
    链接:https://www.jianshu.com/p/3e710a5ee50b
    为了便于寻找,在此处收藏下

    1、滑动不流畅问题

    解决方法一:嵌套滑动不激活。

    mRecycleView.setNestedScrollingEnable(false);
    

    解决办法二:

     LinearLayoutManager layoutManager = new LinearLayoutManager(getContext());
            recyclerView.setLayoutManager(layoutManager);
            recyclerView.setHasFixedSize(true);//
            recyclerView.setNestedScrollingEnabled(false);//
            layoutManager.setSmoothScrollbarEnabled(true);//
            layoutManager.setAutoMeasureEnabled(true);//
    

    2、当NestedScrollView嵌套RecycleView布局由Fragment管理,Fragment切换时会自动滑动到ReycleView的顶部。

    解决方法一:在NestedScrollView唯一子布局中加入

    android:descendantFocusability=“blocksDescendants”
    

    android:descendantFocusability 有三个属性:

    优先于子控件获取焦点 “beforeDescendants"

    当子控件不需要焦点时,获取焦点 ”afterDescendants“

    覆盖所有子控件获取焦点 ”blocksDescendants“

    解决方法二:

    recyclerView.setFocusable(false);
    

    3、ScrollView中的布局不能撑满全屏问题

    必须ScrollView设置:

    android:fillViewport="true"
    

    4、一个布局,内容很长,里面加了scrollview会自动滚动到底部的问题。查了下资料
    ,找到scrollview里的其中一个子控件,设置以下代码即可。

    mIvAvatar.setFocusable(true);
    mIvAvatar.setFocusableInTouchMode(true);
    mIvAvatar.requestFocus();
    

    5、android scrollview 自动滚动到顶部或者底部

    //设置默认滚动到顶部

      scrollView.post(new Runnable() {
       @Override
       public void run() {
        scrollView.fullScroll(ScrollView.FOCUS_UP);
       }
      });
    
    //设置默认滚动到底部
      scrollView.post(new Runnable() {
       @Override
       public void run() {
        scrollView.fullScroll(ScrollView.FOCUS_DOWN);
       }
      });
    

    还有一种方法,就是在scrollview里面的第一个控件,设置

    android:focusable="true"
    android:focusableInTouchMode="true"
    

    相关文章

      网友评论

          本文标题:NestedScrollView嵌套常见问题

          本文链接:https://www.haomeiwen.com/subject/kodgtqtx.html