我在我的Android TV项目中遇到了VerticalGridFragment
子类的问题:一切正常,但如果在一行中有较少的项目,那么最大列数,则项目从水平对齐开始中心。
奇怪的是,只有当元素总数小于最大列数时才会发生。例如,假设此数字为6,如果我有1个项目,则将其放在行的中心。相反,如果我有14个项目,则第三行中的2个项目从左侧开始。
有没有办法将行中的项目与left
或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>
答案 0 :(得分:3)
也许VerticalGridView
本身,<item>
的父级,宽度较小,并且与中心对齐。
您可以尝试将VerticalGridView
的宽度设置为match_parent
(请参阅紧固件的评论)。
答案 1 :(得分:2)
尝试添加 机器人:取向=垂直 在您的清单和布局文件中
答案 2 :(得分: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);
}