3

VerticalGridFragment在我的 Android TV 项目中遇到子类化问题:一切正常,但如果一行中的项目少于最大列数,则项目从中心开始水平对齐。

奇怪的是,只有当元素总数小于最大列数时才会发生这种情况。例如,假设这个数字是 6,如果我有 1 个项目,它将被放置在行的中心。相反,如果我有 14 个项目,则第三行的 2 个项目从左侧开始放置。

问题

有没有办法将一行中的项目与leftor对齐start?难道我做错了什么?

我已经尝试过这种方式,但没有任何反应,项目从中心开始对齐。

<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>
4

3 回答 3

3

也许 的VerticalGridView父级本身<item>具有较小的宽度并与中心对齐。

您可以尝试将宽度设置VerticalGridViewmatch_parent(参见 fasteque 的注释)。

于 2016-07-14T12:15:19.810 回答
2

只需尝试在清单和布局文件中添加 android:orientation=vertical

于 2016-07-07T06:35:04.370 回答
1

基于@corochann 和@fasteque 的答案。VerticalGridPresenter您可以使用此方法更快地初始化。

public class CustomVerticalGridPresenter extends VerticalGridPresenter {

@Override
protected void initializeGridViewHolder(ViewHolder vh) {
    super.initializeGridViewHolder(vh);
    VerticalGridView gridView = vh.getGridView();

    ViewGroup.LayoutParams params = gridView.getLayoutParams();
    params.width = ViewGroup.LayoutParams.MATCH_PARENT;
    gridView.setLayoutParams(params);
}
于 2018-12-21T04:35:11.107 回答