首页 > 解决方案 > 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));

标签: androidandroid-recyclerview

解决方案


晚了一年多,但背后的想法setLayoutManager是设置内容的布局,即在回收器视图中重复视图的列表。如果您向下滚动到此处的文档,它将告诉您列表和网格有几种策略,因此应该可以为您提供线索。此外,它告诉您,没有它,RecyclerView将无法运行,即没有开箱即用的默认值。

因此,如果您想将 设置LinearLayout为水平的(默认情况下是垂直的),那么您必须指定它。

LinearLayoutManager layoutManager
    = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false);

RecyclerView myItems = findViewById(R.id.my_recycler_view);
myItems.setLayoutManager(layoutManager);

推荐阅读