NestedScrollView嵌套RecyclerView导致复用机制失效及键盘弹出遮挡问题
原因:NestedScrollView嵌套RecyclerView会导致滑动的时候,滑的是ScrollView,而RecyclerView的高度无限大,故复用机制失效了。在点击末尾item时,键盘也会遮挡,不能正常上移。
解决:将RecyclerView设置固定高度
代码
在设置adapter数据时调用,
setRvListHeight(data.size)
adapter.setNewData(data)
/**
* 将rv_list设置固定高度,防止NestedScrollView嵌套RecyclerView
* RecyclerView复用机制失效
* 也能防止键盘弹出遮挡问题
*/
private fun setRvListHeight(size: Int) {
if (size >= 10) {//size大小自行调节
val lp: ViewGroup.LayoutParams = rv_list.layoutParams
// 获取屏幕高度
val screenHeight = UIUtils.getScreenHeight(GlobalApplication.getContext())
lp.height = screenHeight
rv_list.layoutParams = lp
} else {
val lp: ViewGroup.LayoutParams = rv_list.layoutParams
lp.height = ViewGroup.LayoutParams.MATCH_PARENT
rv_list.layoutParams = lp
}
}