Leanback VerticalGridFragment 移除顶部间距
Leanback VerticalGridFragment remove top spacing
我正在使用 VerticalGridFragment 在 grid-like 布局中显示项目
我不需要显示搜索或标题,我希望行从屏幕顶部开始,没有任何边距。有帮助吗?
First of follow this steps to move the rows up which is by default given margins by Lean back Library
.
1. Go to you SDK
.
2. Inside SDK -> extras -> android -> support -> v17 -> leanback -> res -> values.
3. Inside values folder copy the dimens.xml inside your current project and copy to your projects res -> values folder
.
Now you have the file name dimens.xml inside your values folder
.
Now open the dimens.xml file which you have copied
.
Change the value for property defined below. By default it will given 168dp around that. So make it less to decrease the top margin as i have given below.
<dimen name="lb_browse_rows_margin_top">35dp</dimen>
现在您可以将行拆分到 Browse Fragment
.
顶部的正下方
我找到了一种方法,通过覆盖 VerticalGridFragment 的 VerticalGridPresenter 然后获取 VerticalGridView,并将顶部填充设置为较小的值。
在 CustomVerticalGridPresenter class(扩展 VerticalGridPresenter)中,覆盖此方法:
@Override
protected void initializeGridViewHolder(ViewHolder vh) {
super.initializeGridViewHolder(vh);
gridView = vh.getGridView();
int top= 20;//this is the new value for top padding
int bottom = gridView.getPaddingBottom();
int right = gridView.getPaddingRight();
int left = gridView.getPaddingLeft();
gridView.setPadding(left,top,right,bottom);
}
然后在 VerticalGridFragment 中,分配新的 CustomVerticalGridPresenter 如下:
CustomVerticalGridPresenter gridPresenter = new CustomVerticalGridPresenter();
gridPresenter.setNumberOfColumns(NUM_COLUMNS);
setGridPresenter(gridPresenter);
您需要创建名为 CustomVerticalGridPresenter 的新 class 并将以下代码放入其中.
public class CustomVerticalGridPresenter extends VerticalGridPresenter {
VerticalGridView gridView;
CustomVerticalGridPresenter(int zoom, boolean val){
super(zoom, val);
}
@Override
protected void initializeGridViewHolder(ViewHolder vh) {
super.initializeGridViewHolder(vh);
gridView = vh.getGridView();
int top = 20;//this is the new value for top padding
int bottom = gridView.getPaddingBottom();
int right = gridView.getPaddingRight();
int left = gridView.getPaddingLeft();
gridView.setPadding(left,top,right,bottom);
}
}
然后在verticalgridfragmentclass中使用
CustomVerticalGridPresenter videoGridPresenter = new
CustomVerticalGridPresenter(ZOOM_FACTOR, false);
而不是
VerticalGridPresentervideoGridPresenter = new VerticalGridPresenter(ZOOM_FACTOR, false);
解决此问题的另一种方法是设置 VerticalGridView 的 windowAlignment 属性。最值得注意的是......
verticalGridView.windowAlignment = BaseGridView.WINDOW_ALIGN_LOW_EDGE //this will remove the top margin
verticalGridView.windowAlignmentOffset = 0
verticalGridView.windowAlignmentOffsetPercent = 25f //find correct values for your case
我正在使用 VerticalGridFragment 在 grid-like 布局中显示项目
我不需要显示搜索或标题,我希望行从屏幕顶部开始,没有任何边距。有帮助吗?
First of follow this steps to move the rows up which is by default given margins by Lean back Library
.
1. Go to you SDK
.
2. Inside SDK -> extras -> android -> support -> v17 -> leanback -> res -> values.
3. Inside values folder copy the dimens.xml inside your current project and copy to your projects res -> values folder
.
Now you have the file name dimens.xml inside your values folder
.
Now open the dimens.xml file which you have copied
.
Change the value for property defined below. By default it will given 168dp around that. So make it less to decrease the top margin as i have given below.
<dimen name="lb_browse_rows_margin_top">35dp</dimen>
现在您可以将行拆分到 Browse Fragment
.
我找到了一种方法,通过覆盖 VerticalGridFragment 的 VerticalGridPresenter 然后获取 VerticalGridView,并将顶部填充设置为较小的值。 在 CustomVerticalGridPresenter class(扩展 VerticalGridPresenter)中,覆盖此方法:
@Override
protected void initializeGridViewHolder(ViewHolder vh) {
super.initializeGridViewHolder(vh);
gridView = vh.getGridView();
int top= 20;//this is the new value for top padding
int bottom = gridView.getPaddingBottom();
int right = gridView.getPaddingRight();
int left = gridView.getPaddingLeft();
gridView.setPadding(left,top,right,bottom);
}
然后在 VerticalGridFragment 中,分配新的 CustomVerticalGridPresenter 如下:
CustomVerticalGridPresenter gridPresenter = new CustomVerticalGridPresenter();
gridPresenter.setNumberOfColumns(NUM_COLUMNS);
setGridPresenter(gridPresenter);
您需要创建名为 CustomVerticalGridPresenter 的新 class 并将以下代码放入其中.
public class CustomVerticalGridPresenter extends VerticalGridPresenter {
VerticalGridView gridView;
CustomVerticalGridPresenter(int zoom, boolean val){
super(zoom, val);
}
@Override
protected void initializeGridViewHolder(ViewHolder vh) {
super.initializeGridViewHolder(vh);
gridView = vh.getGridView();
int top = 20;//this is the new value for top padding
int bottom = gridView.getPaddingBottom();
int right = gridView.getPaddingRight();
int left = gridView.getPaddingLeft();
gridView.setPadding(left,top,right,bottom);
}
}
然后在verticalgridfragmentclass中使用
CustomVerticalGridPresenter videoGridPresenter = new
CustomVerticalGridPresenter(ZOOM_FACTOR, false);
而不是
VerticalGridPresentervideoGridPresenter = new VerticalGridPresenter(ZOOM_FACTOR, false);
解决此问题的另一种方法是设置 VerticalGridView 的 windowAlignment 属性。最值得注意的是......
verticalGridView.windowAlignment = BaseGridView.WINDOW_ALIGN_LOW_EDGE //this will remove the top margin
verticalGridView.windowAlignmentOffset = 0
verticalGridView.windowAlignmentOffsetPercent = 25f //find correct values for your case