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

NestedScrollView嵌套常见问题

作者: 楷桐 | 来源:发表于2017-07-24 01:45 被阅读2591次

    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/gqyvkxtx.html