2016-02-06 8 views
6

RecyclerViewまたはGridViewを含むUIを構築しようとしています。ここではアイテムの数と幅に応じて自動的に列数を設定します私は動的に値を設定しています。ここで RecyclerViewのLayoutManagerがアイテムの幅に応じて自動的に列数を設定する

my current UI

は、私が達成しようとしているものの画像だここで私はこれまで達成してきたもののイメージがあります

... ...

my target UI

私の項目のレイアウトXML

<TextView 
     android:layout_width="wrap_content" 
     android:layout_height="40dp" 
     android:background="@drawable/hollow_white_background" 
     android:id="@+id/foodItemName" 
     android:text="PIZZA" 
     android:gravity="center" 
     android:textColor="@color/colorGray300" 
     android:textStyle="bold" 
     android:textSize="15sp" 
     android:paddingLeft="10dp" 
     android:paddingRight="10dp" /> 

Pリースヘルプ!

+0

の固定widthRecyclerViewのLayoutManagerのようStaggeredGridLayoutManagerを使用してみてください。 – thetonrifles

+0

ターゲットのUIを見ると、標準のレイアウトマネージャーでRecyclerViewを使用して取得することはできません。何らかのFlowLayoutが必要です。多くの実装が利用可能です。例えば、[ここ](https://github.com/thetonrifles/android-tags-selector)それは私のリポジトリで、何か似たものを含んでいます。 – thetonrifles

+0

おそらくFlowLayoutがあなたが探しているものです。 https://github.com/ApmeM/android-flowlayoutまたはhttps://github.com/blazsolar/FlowLayoutを参照してください。 –

答えて

0

xmlファイルに、GridViewのandroid:numColumns = "auto_fit"とandroid:stretchmode = "columnWidth"属性を追加します。最初の属性は、画面サイズに応じていくつの列があるべきかを決定し、2番目の属性は余分なスペースをどのようにするかを決定します。この場合、列幅が増加します。

+1

既にそれを行っていますが、それでも私のアイテムが左に揃えられた2つの列しか表示されず、余分なスペースは処理されません。私の欲しいものは、アイテムの幅が小さい場合、それは3列以上のように表示され、幅が大きい場合は自動的に1列または2列が表示されます。 –

+0

@AyushMauryaまあ、それらの属性は、必要なものを正確に行う必要があります。現在のXMLファイルで質問を更新できますか? –

+0

これは私が使用されたXMLであります、質問はまだ同じです。 –

0

あなたがGridLayoutManagerを構成するために使用されるアイテムレイアウトXMLとコードを入力してくださいitem_layout.xml

+0

StaggeredGridLayoutManagerは列ではなく列に影響を与えます。 –

関連する問題