2013-05-02 24 views
5

Wprowadzam widok siatki w mojej aplikacji.I chcę uzyskać poziomy odstęp między kolejnymi wierszami i pionowe odstępy między kolejnymi kolumnami w widoku siatki przy użyciu kodu Java.otrzymuje poziomy i pionowy odstęp w widoku siatki

Czy to możliwe? Czy istnieją jakieś bezpośrednie metody uzyskiwania odstępów?

Odpowiedz

8

Możesz użyć znacznika android:verticalSpacing i android:horizontalSpacing w GridView i podać odstępy zgodnie z wymaganiami.

Na przykład:

<GridView 
    android:layout_height="wrap_content" 
    android:id="@+id/gridView1" 
    android:layout_width="match_parent" 
    android:numColumns="auto_fit" 
    android:horizontalSpacing="10dp"  // space between two items (horizontal) 
    android:verticalSpacing="10dp">  // space between two rows (vertical) 

na Java try:

"gridviewname".getHorizontalSpacing() 
"gridviewname".getVerticalSpacing() 
+0

Tak, ale chcę uzyskać te odstępy od mojego kodu Java. – dd619

+0

Edytowałem odpowiedź, sprawdź, czy to działa dla ciebie – Celta

+0

czy działa na API 2.2? – dd619

1

Jeśli minSdk jest 16 następnie można użyć mGridView.getHorizontalSpacing() lub mGridView.getVerticalSpacing().

Jeśli nie, możesz ustawić w układzie xml android:verticalSpacing="@dimen/grid_spacing" iw kodzie użyj getResources().getDimensionPixelSize(R.dimen.grid_spacing).

W ten sposób możesz zmienić rozmiar tylko w jednym miejscu, co wpłynie zarówno na układ xml, jak i kod.

Wewnątrz /res/values/dimens.xml dodać tę linię -

<dimen name="grid_spacing">10dp</dimen> 
1

można także spróbować w Javie

mGridView.setHorizontalSpacing(4); 
mGridView.setVerticalSpacing(4); 

Albo w XML

<GridView 
    android:layout_height="wrap_content" 
    android:id="@+id/gridView1" 
    android:layout_width="match_parent" 
    android:numColumns="auto_fit" 
    android:horizontalSpacing="4dp" 
    android:verticalSpacing="4dp">