java - 如何正确获取 SectionedRecyclerViewAdapter 的项目视图类型?
问题描述
RecyclerView
我使用此代码使用以下代码在两列的跨度中提供标题项GridLayoutManager
:
MyAdapter myAdapter = new MyAdapter(this, items);
this.myRecyclerView.setAdapter(myAdapter);
GridLayoutManager layoutManager = new GridLayoutManager(getContext(), 2);
layoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
switch (myAdapter.getItemViewType(position)) {
case -1: // VIEW_TYPE_ITEM
return 1;
default: // VIEW_TYPE_HEADER
return 2;
}
}
});
this.myRecyclerView.setLayoutManager(layoutManager);
这有效,但它抱怨我对 的使用getItemViewType
,因为它已被弃用。我的适配器扩展了SectionedRecyclerViewAdapter<RecyclerView.ViewHolder>
.
我应该改用什么?
(另外,我不知道应该在 switch 语句中使用的枚举,但这是另一回事。)
解决方案
你必须使用 recyclerview viewpool 很好的方式来做部分 recyclerview 像谷歌发挥它的 recyclerview 的内置功能。
例如部分recyclerview -
推荐阅读
- groovy - 在 Spock 模拟中,无法根据结果验证模拟:MissingPropertyException: No such property
- windows-server - 启用内存转储性能影响
- html - 如何在没有 tr 和 td 标签的 Angular 中以矩阵形式显示元素
- bash - grep 如何处理 DOS 行尾?
- c# - 构造函数中 C# 记录上的 JsonProperty
- pandas - 基于不同列的值进行聚合
- python - 具有对数概率标度的散点图的 Matplotlib 线性回归
- python - 有没有办法加快这些嵌套循环(拉普拉斯案例)Python?
- python - 尝试使用翻译模块将整列从西班牙语转换为英语
- node.js - 如何将不断发布到端点的 Node.js 应用程序部署到 Heroku?