2015-09-04 9 views
7

Rozwijając aplikację na platformę Android TV napotkałem problem związany z używaniem funkcji BrowseFragment udostępnianej przez bibliotekę pomocy Leanback. Czy możemy zmienić margines między elementami RowsFragment?Ustaw marginesy między pozycjami na BrowseFragment

+0

Czy wyściełanie elementów jest rozwiązaniem? – Sebastiano

+0

Dziękuję za szybką odpowiedź, w końcu mogłem znaleźć rozwiązanie. – corochann

Odpowiedz

4

enter image description here

Znalazłem odpowiedź sama. Kluczem był HorizontalGridView, który przechowuje listę poszczególnych pozycji wierszy. Możemy uzyskać referencję tego HorizontalGridView przez R.id.row_content. Wreszcie metoda setItemMargin była rozwiązaniem tego problemu. Poniżej znajduje się przykładowy kod i mogę uzyskać najlepsze zdjęcie.

@Override 
public ViewHolder onCreateViewHolder(ViewGroup parent) { 
    HorizontalGridView horizontalGridView = (HorizontalGridView) parent.findViewById(R.id.row_content); 
    horizontalGridView.setItemMargin(400); // You can set item margin here. 

    ... 

    }; 
+0

Jak ustawić pionowy margines dla wierszy listy. możesz mi pomóc w tym. –

+1

Spróbuj jak '((ViewGroup.MarginLayoutParams) horizontalGridView.getLayoutParams()). SetMargins (0, 0, 0, 100);' Możesz zmienić margines samego HorizontalGridView. – corochann

+0

ok, spróbuję. a także czy możesz mi powiedzieć, jak ustawić białą ramkę do karty wyświetlanej w wierszach? –

5

Można zastąpić kilka stylów do osiągnięcia tego celu, na przykład:

<style name="AppTheme.Leanback" parent="Theme.Leanback"> 
    .. 
    <item name="rowHorizontalGridStyle">@style/TvHorizontalGridView</item> 
    .. 
</style> 

<style name="TvHorizontalGridView" parent="Widget.Leanback.Row.HorizontalGridView"> 
    <item name="horizontalMargin">@dimen/margin_medium</item> 
    <item name="verticalMargin">@dimen/margin_medium</item> 
</style> 

gdzie @dimen/margin_medium jest wielkość marginesu, który chcesz.

0

Idealnie nadpisać szczegóły stylu, gdy @Billy odpowiedział. To może niestety trochę potrwać, aby dowiedzieć się, co jest co. Jeśli to, czego szukasz, nie nadaje się do stylu, możesz najwyraźniej zastąpić wbudowane zasoby Leanback (nie wiesz, czy jest to niezawodne/bezpieczne). np .:

<dimen name="lb_browse_rows_margin_top">167dp</dimen> 
<dimen name="lb_browse_item_vertical_spacing">8dp</dimen> 
<dimen name="lb_browse_expanded_row_no_hovercard_bottom_padding">28dp</dimen>