31

RecyclerViewいくつかのデータをwithに入力しようとしていますGridLayoutManager:

GridLayoutManager layoutManager = new GridLayoutManager(this, 3, GridLayoutManager.VERTICAL, false);

これにより、データがグリッドに左から右に入力されます。最初のアイテムは左上の場所などに配置されます。

しかし、私が開発しているアプリは RTL 言語用に設計されているため、右から左に塗りつぶす必要があります。

最後の引数を に変更しようとしましたtrue。しかし、それRecyclerViewはずっと下にスクロールしただけです。

またlayoutDirection、属性の設定RecyclerViewは機能しません (私の最小 API が 16 であり、この属性が API17+ に追加されていることを考慮せずに):

<android.support.v7.widget.RecyclerView
        android:id="@+id/grid"
        android:layoutDirection="rtl"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

を使用して右から左へ塗りつぶされたグリッドを作成するにはどうすればよいRecyclerViewですか?

4

5 に答える 5

1

一見すると、 GridLayouManager は、が与えられたときに右から行を埋める必要があります。通常、この方向はコンテナから継承されます。getLayoutDirection()ViewCompat.LAYOUT_DIRECTION_RTLRecyclerView's

ただし、これが期待どおりに機能しない場合、または API 16 にプッシュする必要がある場合、または RTL サポートの実装が不適切なデバイスがある場合は、単にGridLayoutManagergithub からプルして、好みに合わせて調整したカスタム マネージャーを使用できます。 .

ストックを拡張してlayoutChunk()GridLayoutManagerをオーバーライドするだけで十分な場合があります。

于 2015-10-04T15:40:30.273 に答える
-6

その非常に単純な方法setReverseLayoutは、メソッドを次のように呼び出すだけです。

GridLayoutManager layoutManager = new GridLayoutManager(this, 3, GridLayoutManager.VERTICAL, false);
layoutManager.setReverseLayout(true);
于 2015-11-23T09:46:43.333 に答える