6

私は GridView ベースのカレンダーを持っています。android:listSelector="@null"このサイトから得たアドバイスに従って、セレクターが null に設定された次の XML レイアウトがあります。今、GridView の右側に数ピクセル幅のストリップを取得しています。なんで?私はできることはすべて試しましたが、役に立ちませんでした。ここに私のXMLレイアウトがあります:

        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="fill_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >

            <GridView
                android:id="@+id/calendar"
                android:layout_width="fill_parent"
                android:layout_height="match_parent"
                android:horizontalSpacing="-1px"
                android:numColumns="7"
                android:stretchMode="columnWidth" 
                android:gravity="center"
                android:verticalSpacing="-1px"
                android:listSelector="@null" >

            </GridView>

        </LinearLayout>

私が得るのはこの写真です:

ここに画像の説明を入力

4

5 に答える 5

6

このスペースは、グリッドの各行の計算が不完全であるためです。たとえば、デバイスの幅が 320 ピクセルで行数が 7 の場合、320 ピクセルを満たす計算を試してください。各セルの幅が 45.71428571428571 px の場合のみ、縮小できます。

その他のオプション

スペースが左から右に均等に分割されるように、グリッドにandroid:gravity="center"プロパティを適用 します

于 2012-05-23T14:07:28.450 に答える
4

私の場合、水平方向の間隔は 1 dp でした

android:horizontalSpacing="1dp"

これを解決するために、適切なパディングを-1dpに設定しました

android:paddingRight="-1dp"

これにより左側にスペースができると思っていましたが、正常に機能しました

于 2014-08-22T18:21:48.183 に答える
0

使ってみてください

android:layout_margin="0dp"
android:padding="0dp"

また、そのスペースがスクロールバーに割り当てられている場合もあります。
そして、なぜあなたは負の値であなたの垂直と水平の間隔を持っているのですか?

于 2012-05-23T13:52:33.400 に答える
0
grid.setColumnWidth(grid.getColumnWidth()+1);

これにより、現在の ColumnWidth が取得され、それに 1 ピクセルが追加されます。その前にグリッドを初期化する必要があるため、onCreateView の後にこれを使用することを忘れないでください。

また、グリッド ビューでは、match_parent (高さと幅) を使用する必要があります。列の画像/レイアウトも match_parent にする必要があります。

于 2015-04-01T13:37:41.963 に答える