3

アイテムの水平リストを表示するために、1 つのフラグメントに 3 つの RecyclerView を持つアプリを構築しています。LinearLayoutManager オブジェクトを作成し、3 つすべての RecyclerView に設定しました。しかし、1 つの LinearLayoutManager は 1 つの RecyclerView にのみアタッチできると言って、アプリをクラッシュさせます。同じプロパティが必要なのに、すべてにアタッチできないのはなぜですか。コードは..

LinearLayoutManager llm = new LinearLayoutManager(getActivity());
        llm.setOrientation(LinearLayoutManager.HORIZONTAL);
        recViewTopSell.setLayoutManager(llm);
        recViewBrands.setLayoutManager(llm);
        recViewCategory.setLayoutManager(llm);

エラー

 recViewBrands.setLayoutManager(llm);
            recViewCategory.setLayoutManager(llm);
4

2 に答える 2

0

いいえ、そのように再利用することはできません。あなたの場合LayoutManagerLinearLayoutManagerには、使用されている RecyclerView に固有の状態が含まれています。

3 つの異なる LayoutManagers に多くのセットアップが必要な場合は、createLayoutManager()代わりにメソッドを 3 回呼び出すことを検討してください。

于 2016-04-21T10:29:22.197 に答える
-1

マティアスの回答に続いて、これを行います:

    recViewTopSell.setLayoutManager(newLLM());
    recViewBrands.setLayoutManager(newLLM());
    recViewCategory.setLayoutManager(newLLM());

その後:

    private LinearLayoutManager newLLM() {
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
        linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
        return linearLayoutManager;
    }
于 2016-04-21T10:45:38.480 に答える