在ScrollView中封装RecyclerView无法显示

264 阅读1分钟

Android5.0 之后,在有限的窗口范围内,为了显示大量的数据,我们可以使用控件 RecyclerView ,其与ListView相似,以列表形式展现数据,并且数据通过适配器Adapter加载。

使用RecyclerView核心在于其复用效果,RecycleerView控件复用item对象,控件内部已经自行实现,相较ListView多了动画效果、简化了复用的工作。

对于Adapter适配器,可以自定义,也可以直接使用RecyclerView.Adapter,强制使用ViewHolder类。 Problem

  • 使用RecyclerView复用控件,大背景是在ScrollView下,其中RecyclerView部分在界面内无法展示。 Solution
  1. 可能仅仅是在RecyclerView过程中或Adapter适配过程中存在问题
  • 检查RecyclerView的 id、Adapter的 id、要替换的参数部分的 id保证无误
  • 检查是否定义了布局管理 LinearLayoutManagement、是否将适配器 set 到 RecyclerView
  1. ScrollView的大背景导致RecyclerView最终无法显示 注:不建议参考网络上对LinearLayoutManagement重写的方法,会有显示,但是仍然会显示不完整
  • 为ScrollView控件添加属性
android:descendantFocusability="blocksDescendants"
  • 为防止嵌套滑动,在Class内为recyclerView添加
recyclerView.setNestedScrollingEnabled(false);