1. ホーム
  2. android

[解決済み] リサイクルビュー.setLayoutManager()

2022-02-07 07:30:28

質問

このコードの中で、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));

解決方法は?

1年以上遅れたが、その背後にある考え方は setLayoutManager は、コンテンツのレイアウト、つまりリサイクラービューのリピートビューのリストを設定するためのものです。にスクロールダウンすると ドキュメント ここに、リストとグリッドのためのいくつかの戦略があることが書かれているので、それがヒントになるはずです。さらに、これがないと RecyclerView は機能しません。つまり、デフォルトはありません。

そのため、たとえば LinearLayout を水平にする(デフォルトでは垂直)ことを指定する必要があります。

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

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