我决定为我的LayoutManager
使用自定义RecyclerView
。不幸的是,当我将它设置为RecyclerView
时,没有任何内容出现。只有当我用LinearLayoutManager
所有视图替换它时才显示。
这是我的LayoutManager
:
public class MyLayoutManager extends RecyclerView.LayoutManager{
@Override
public RecyclerView.LayoutParams generateDefaultLayoutParams() {
return new RecyclerView.LayoutParams(RecyclerView.LayoutParams.MATCH_PARENT, RecyclerView.LayoutParams.MATCH_PARENT);
}
@Override
public void onLayoutChildren(RecyclerView.Recycler recycler, RecyclerView.State state) {
View view = recycler.getViewForPosition(0);
addView(view);
measureChildWithMargins(view, 0, 0);
layoutDecorated(view, 0, 0, getWidth(), getHeight());
}
}
请给我一个提示如何正确实施LayoutManager
,谢谢。
答案 0 :(得分:0)
毫无疑问,最好的方法是阅读 LinearLayoutManager 或 GridLayoutManager
的源代码答案 1 :(得分:0)
LayoutManager
- 帮助您将项目定位在RecyclerView
RecyclerView
需要有一个布局管理器和一个要实例化的适配器。布局管理器将项目视图放在RecyclerView
内,并确定何时重用用户不再可见的项目视图。
RecyclerView
提供了这些内置布局管理器:
LinearLayoutManager
在垂直或水平滚动列表中显示项目。GridLayoutManager
显示网格中的项目。StaggeredGridLayoutManager
以交错网格显示项目。要创建自定义布局管理器,请扩展RecyclerView.LayoutManager
类。
这是一个很好的example
答案 2 :(得分:0)
尝试添加
setAutoMeasureEnabled(true)
检查您的recyclerview版本,