ScrollView与RecyclerView嵌套问题
今天开发时,遇到了几个ScrollView与RecyclerView嵌套导致的问题。
1. 进入页面时,layout没有置顶
文章图片
进入页面.jpeg root cause: 由于在ScrollView内嵌套了RecyclerView,导致RecyclerView获取到了焦点
solution: 使ScrollView包裹的View获取到焦点
如下所示,在LinearLayout里增加 android:focusable="true"和 android:focusableInTouchMode="true"这两个属性
reference: https://blog.csdn.net/suwenlai/article/details/72902684
2.RecyclerView显示不全
root cause: 可能是RecyclerView的onMeasure问题
solution1: 重写LinearLayoutManager,可能可以解决
solution2: 使用NestScrollView,而不是ScrollView
reference: https://blog.csdn.net/ThugKd/article/details/78196970
3.NestedScrollView与RecyclerView滑动冲突
【ScrollView与RecyclerView嵌套问题】root cause: NestedScrollView与RecyclerView嵌套
solution: recyclerView.setNestedScrollingEnabled(false);
reference: https://www.jianshu.com/p/791c0a4acc1c
@Override
protected void initView() {
mAdapter = new PassengerInfoAdapter();
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler_flight_order_detail);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.addItemDecoration(new ListDivider(this, ListDivider.HORIZONTAL_LIST, R.drawable.passenger_info_divider));
// 修复NestedScrollView与RecyclerView滑动冲突
recyclerView.setNestedScrollingEnabled(false);
recyclerView.setAdapter(mAdapter);
}
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- Docker应用:容器间通信与Mariadb数据库主从复制
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 第326天
- Shell-Bash变量与运算符
- 逻辑回归的理解与python示例
- Guava|Guava RateLimiter与限流算法
- 我和你之前距离
- CGI,FastCGI,PHP-CGI与PHP-FPM
- 原生家庭之痛与超越