Android常见问题安卓

NestedScrollView嵌套常见问题

2017-07-24  本文已影响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"
上一篇下一篇

猜你喜欢

热点阅读