android - recyclerview.setLayoutManager()
问题描述
这段代码中 recyclerview.setLayoutManager() 的用途是什么?请详细说明。我知道recyclerview,但我对 setLayoutManager() 在这里的用途感到困惑?
public class MainActivity extends AppCompatActivity {
public static final int NEW_WORD_ACTIVITY_REQUEST_CODE = 1;
private WordViewModel mWordViewModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
RecyclerView recyclerView = findViewById(R.id.recyclerview);
final WordListAdapter adapter = new WordListAdapter(this);
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
解决方案
晚了一年多,但背后的想法setLayoutManager
是设置内容的布局,即在回收器视图中重复视图的列表。如果您向下滚动到此处的文档,它将告诉您列表和网格有几种策略,因此应该可以为您提供线索。此外,它告诉您,没有它,RecyclerView
将无法运行,即没有开箱即用的默认值。
因此,如果您想将 设置LinearLayout
为水平的(默认情况下是垂直的),那么您必须指定它。
LinearLayoutManager layoutManager
= new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false);
RecyclerView myItems = findViewById(R.id.my_recycler_view);
myItems.setLayoutManager(layoutManager);
推荐阅读
- javascript - 为数组中的所有值设置相同的键
- node.js - 处理带有大量 mysql 更新的套接字连接的最佳方法
- c# - 如何 Nullable.GetUnderlyingType 而不会遇到可能的空引用问题
- html - 需要打开一个链接(这是表中的一个条目),检索/抓取数据,返回上一页,使用 Python 3、selenium 和 xpaths 在循环中重复
- r - 将数据框一分为二,仅更改两个数据框之一的变量名称(setnames)
- bash - 向应用程序发送命令并通过 bash 中的文件描述符读取其输出
- maxlength - AllenNLP 问答的段落长度限制
- c# - Prism DialogService 显示模式对话框
- r - 逻辑回归中的空方差和残差方差较大
- maven - 在 IntelliJ 中找不到 Maven java-doc 插件