2016-07-07 81 views
2

我在我的Android TV項目中遇到了子類爲VerticalGridFragment的問題:一切工作正常,但如果在一行中的項目數量較少,那麼列數最多,則項目將水平對齊開始從中心。Android TV:VerticalGridFragment行項目對齊

奇怪的是,它只有在元素總數少於最大列數時纔會發生。例如,假設這個數字是6,如果我有一個項目,它被放置在該行的中心。相反,如果我有14個項目,第三行的2個項目從左邊開始放置。

issue

有沒有辦法對齊成一排的leftstart的項目? 我做錯了什麼?

我試過這種方式,但沒有任何反應,項目從中心開始對齊。

<style name="AppTheme.Widget.Leanback.GridItems.VerticalGridView" 
     parent="Widget.Leanback.GridItems.VerticalGridView"> 
    <item name="android:gravity">left|start</item> 
</style> 

然後設置它像這樣在我的主題,從Theme.Leanback延伸:

<item name="itemsVerticalGridStyle">@style/AppTheme.Widget.Leanback.GridItems.VerticalGridView</item> 
+0

Hi @fasteque, 我也不確定根本原因,但是你檢查VerticalGridView(它的父親)本身的寬度嗎?我懷疑VerticalGridView本身具有較小的寬度,並與中心對齊。 – corochann

+0

@corochann感謝您的快速反饋!好點,我會檢查這一點,也許你是對的。奇怪的是(假設列的數量是6):1-5個項目,它們居中,例如7個項目,第二個項目中的項目正確地在左邊。但也許是因爲第一行中的6個項目強制VerticalGridView填充父項。 – fasteque

+0

@corochann你是對的,我已經將'VerticalGridPresenter'子類化爲'VerticalGridView'提供了我自己的佈局,其中我將寬度設置爲'match_parent'。現在這些項目在左側,即使我在左側看到更多的空白空間。但這是一個小問題。如果您在下面提供實際答案,我會接受。再次感謝。 – fasteque

回答

1

也許VerticalGridView本身,<item>的父親,具有較小的寬度並與中心對齊。

您可以嘗試將VerticalGridView的寬度設置爲match_parent(請參閱緊固件的註釋)。

2

剛剛嘗試加入 安卓方向=垂直 在你的清單和佈局文件

+0

如何在清單中設置'android:orientation = vertical'?沒有這樣的屬性。你可以設置'android:screenOrientation',但不能設置'vertical'的值。 – fasteque

+0

檢查此[SO回答](http://stackoverflow.com/a/582585/5995040),它將支持在清單中添加方向。希望這有助於 –

+0

@ Mr.Rebot你可以設置'縱向'而不是'垂直'。另外,由於它是電視的應用程序,所以我需要將它放在「風景」中。 – fasteque