-1

RecyclerViewとその実装について詳しく知りたいので、この場合はTowueアイテムビューを設計する必要があります。 LinearLayoutManagerこの場合、カードの垂直リストが表示され、2番目のアイテムデザインは、LayoutManagerをGridLayoutManagerタイプに変更するときに使用されます。LayoutMangerの種類を切り替えるときにRecyclerviewの行のデザインを変更する(グリッド - 線形)

私の質問はどのようにこのようなロジックを実装するのですか?

ここでは、複数行のデザインのRecyclerviewについてthisのような回答がありましたが、LayoutManagerタイプの切り替えについては何も見つかりませんでした。 とこのtalkによると、アダプタのレイアウトマネージャで再生しないでください。

最後に、私はAndroid開発の初心者だと言わざるを得ないので、私の質問がはっきりしていることを願っています。

答えて

1

垂直線形レイアウトとグリッド(垂直)レイアウトを変更する場合は、GridLayoutManagerを使用し、列のスパンを1(垂直レイアウト)と1より大きい値(グリッド)に変更してください。

レイアウト修飾リソースフォルダを使用して、異なるレイアウトに異なるスパン値を使用できます。例えば

、あなたは土地での肖像画やグリッドで垂直線形をしたいと想像:

int spanCount = getResources().getInteger(R.integer.column_count); 
return new GridLayoutManager(context, spanCount); 

は、その後、あなたが異なる値でcolumn_countを定義しますvalues/integer.xmlvalues-land/integers.xmlを作成します。

1

あなたは、両方のレイアウトマネージャを作成して、特定の条件(例えば画面の向き)に応じて、アダプタの活動ではなく、あなたのRecyclerViewに右のマネージャーを設定することができます。

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    RecyclerView mRecyclerView 
    int numberOfColumns = 3; 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.your_layout_here); 
    LinearLayoutManager mLinearLayoutManager = new LinearLayoutManager(this,LinearLayoutManager.VERTICAL, false); 
    GridLayoutManager mGridLayoutManager = new GridLayoutManager(this,numberOfColumns); 
    mRecyclerView = (RecyclerView) findViewById(R.id.your_view_recycler) 
    if (condition){ 
     mRecyclerView.setLayouManager(mLinearLayoutManager) 
    } else { 
     mRecyclerView.setLayoutManager(mGridLayoutManager) 
    } 
関連する問題