以下は私のxmlコードです:
<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/gridviewgallery"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:columnWidth="@dimen/gridview_column_width"
Android:numColumns="auto_fit"
Android:verticalSpacing="0dp"
Android:horizontalSpacing="0dp"
Android:stretchMode="columnWidth"
Android:gravity="center"
Android:background="#444444"
/>
Android:stretchMode = "columnWidth"を使用すると、列の間にギャップが作成されます(画面の幅全体に表示されます)。Android:stretchMode = "none"を使用すると、左揃えになり、右側にギャップが残ります。画面の側面(現在は列の間にギャップはありませんが)問題は両方が必要なことです:画面の幅を埋めるために、列の間にギャップがありません。それを達成する方法は?
Android:numColumns="auto_fit"
Android:stretchMode="columnWidth"
とAndroid:columnWidth="60dp"
の組み合わせにより、さまざまな画面サイズに合わせて調整できるレイアウトが得られます。列数を固定するよりもはるかに優れています。以下の例を参照してください...
<GridView
Android:id="@+id/tablegrid"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:background="#ffff7965"
Android:horizontalSpacing="5dp"
Android:verticalSpacing="5dp"
Android:layout_marginStart="5dp"
Android:layout_marginLeft="5dp"
Android:numColumns="auto_fit"
Android:stretchMode="columnWidth"
Android:gravity="center"
Android:columnWidth="60dp"
/>
それは非常に単純な男です、ただ線を削除してください
Android:columnWidth="@dimen/gridview_column_width"
任意の数の列を指定できます。列の数は4です。
Android:numColumns = "4"
これは私にとってはうまく機能しています
私はこの質問が少し古いことを知っていますが、これが他の誰かに役立つことを願って私が見つけた答えです、ただAndroid:stretchMode
ドキュメントに記載されているようにspacingWidthUniform
を使用します ここ 列間の間隔を均等に拡大します。
詳細については、上記のリンクを参照してください。