nad*_*e87 10 android android-layout leanback
我使用VerticalGridFragment以类似网格的布局显示项目我不需要显示搜索或标题,我希望行从屏幕顶部开始,没有任何边距.有帮助吗?
nad*_*e87 12
我找到了一种方法,通过覆盖VerticalGridFragment的VerticalGridPresenter然后获取VerticalGridView,并将顶部填充设置为较小的值.在CustomVerticalGridPresenter类(扩展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);
}
Run Code Online (Sandbox Code Playgroud)
然后在VerticalGridFragment中,分配新的CustomVerticalGridPresenter,如下所示:
CustomVerticalGridPresenter gridPresenter = new CustomVerticalGridPresenter();
gridPresenter.setNumberOfColumns(NUM_COLUMNS);
setGridPresenter(gridPresenter);
Run Code Online (Sandbox Code Playgroud)
小智 7
您需要创建名为 CustomVerticalGridPresenter 的新类,并将以下代码放入其中。
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);
}
}
Run Code Online (Sandbox Code Playgroud)
然后在verticalgridfragment类中使用
CustomVerticalGridPresenter videoGridPresenter = new
CustomVerticalGridPresenter(ZOOM_FACTOR, false);
Run Code Online (Sandbox Code Playgroud)
代替
VerticalGridPresentervideoGridPresenter = new VerticalGridPresenter(ZOOM_FACTOR, false);
Run Code Online (Sandbox Code Playgroud)