1

に表示されているフラグメント間の境界線を取得しようとしていますGridView。の背景色GridViewを白に、フラグメントの背景色を黒に設定しました。次に、これらのコード行を挿入しました。

int border = 2; // px
view.setColumnWidth((dm.widthPixels / 2)-(4*border));
view.setNumColumns(2);
view.setHorizontalSpacing(border);
view.setVerticalSpacing(border);

view私のGridViewです。

その結果、全体の左側と、GridView上部と下部のフラグメントの間に素敵な境界線ができます。しかし、上の両方のフラグメントの間に境界線はありません。

これが私の宣言ですGridView

<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/overview"
    android:stretchMode="columnWidth"
    android:clipChildren="true" >

</GridView>

誰かが助けることができるかもしれません。

挨拶

4

1 に答える 1

5

さて、私が以前のコメントで説明しようとしていたこと:GridViewあなたが望む間隔を調整する代わりに、グリッドアイテムにそれを処理させてみませんか?これを簡単に解決する方法の1つは、適切なドローアブルを背景として、アダプターの入力/受け渡しを使用しているレイアウトファイルに設定することです。GridViewつまり、グリッドアイテムに使用するレイアウト(この場合はあなたが言及した断片。

簡単な例:

を取るGridView

<GridView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/gridview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@android:color/white"
    android:numColumns="4" />

そして、その中のアイテムに使用されるレイアウト:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/grid_background"
    android:gravity="center"
    android:text="Text"
    android:textColor="@android:color/white" />

そして最後に、背景のドローアブルからの魔法:

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">    
    <stroke android:width="5dp" android:color="@android:color/white" />    
    <padding android:bottom="5dp" android:left="5dp" android:right="5dp"
        android:top="5dp" />    
    <solid android:color="@android:color/black" />    
</shape>

結果は次のようになります。

'borders'を使用したgridview

ちなみに、水平方向と垂直方向の間隔パラメータが機能しない理由はわかりません。これらを使用すると、上の画像と非常によく似た効果を得ることができます。

GridView

<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/gridview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@android:color/white"
    android:horizontalSpacing="10dp"
    android:numColumns="4"
    android:verticalSpacing="10dp" />

アイテムのレイアウト(以前の背景リソースを固定色に交換しただけです):

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/black"
    android:gravity="center"
    android:text="Text"
    android:textColor="@android:color/white" />

結果:

'borders'を含む別のグリッドビュー

これがあなたの途中であなたを助けることを願っています。

于 2012-04-18T22:07:48.453 に答える