2013-06-17 10 views
28

Non riesco a trovare un modo per aggiungere un margine esterno alle righe di GridView. Ho trovato le proprietà setHorizontalSpacing e setVerticalSpacing che aggiungono il riempimento interno tra le righe di GridView, tuttavia non si applica ai bordi esterni delle righe.GridView rows outer margin

mi piacerebbe avere un risultato come è descritto sul Google Play Store:

enter image description here

Grazie!

+0

Hai provato a aggiungere semplicemente padding (o margine) a 'GridView'? –

+0

come @MH è possibile aggiungere le proprietà 'android: paddingLeft/Right' con lo stesso valore di' setVertical/HorizontalSpace'. Lo svantaggio è che questo valore è fisso e se si imposta 'android: stretchMode =" spacingWidth "' il ridimensionamento modificherà solo le spaziature interne. – Batsu

+0

L'aggiunta di padding a GridView funziona come previsto. Tuttavia, quando gli elementi iniziano a scorrere, il padding rimane fisso, ovvero quando uno degli elementi è sospeso nella parte superiore dello schermo, c'è una striscia bianca (nel mio caso) tra la parte superiore dello schermo e l'elemento. Sembrerebbe meglio se il margine fosse sull'elemento all'interno di GridView, ma quei margini non sembrano essere rispettati. –

risposta

87

È possibile utilizzare android:clipToPadding=false per aggiungere il riempimento che non rimane quando gli elementi vengono fatti scorrere. Ti piace questa

<GridView 
    android:id="@+id/grid" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:horizontalSpacing="16dp" 
    android:verticalSpacing="16dp" 
    android:padding="16dp" 
    android:clipToPadding="false" /> 

E se si desidera che la barra di scorrimento sul lato esterno della zona di imbottitura, impostare android:scrollbarStyle="outsideOverlay" grazie @Karl!

+13

Usa anche: android: scrollbarStyle = "outsideOverlay". Questo mette la barra di scorrimento nell'area del padding. Altrimenti sarà prima del padding. – Karl

+9

Questo era ** incredibilmente difficile da trovare e non molto intuitivo. Grazie :) – eliocs

+0

Grazie. Ciò è utile anche per evitare che la riga attualmente selezionata non sia fuori dallo schermo a causa dell'overscanning della TV. –