[英]Remove top margin from BrowseFragment in Android TV
您可以使用dimens.xml
v17 Lean Back
库中提供的dimens.xml
来完成此操作。
Follow the steps below first.
转到您的sdk
- > extras
- > android
- > support
- > v17
- > leanback
- > res
- > values
。
从他们的复制dimens.xml
文件到您当前的leanback项目values
文件夹。
现在,您在项目values
文件夹中有了dimens.xml
文件。
打开该文件,找到以下dimen
。
给定的默认值可能是
167dp
。
<dimen name="lb_browse_rows_margin_top">167dp</dimen>
因此,将其更改为大约
30dp
或根据您的需要。
<dimen name="lb_browse_rows_margin_top">30dp</dimen>
您将在Browse Fragment
获取行。
如果只需要删除片段中的标题边距而不是全局覆盖BrowseFragment:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = super.onCreateView(inflater, container, savedInstanceState);
FrameLayout containerDock = (FrameLayout) view.findViewById(R.id.browse_container_dock);
FrameLayout.MarginLayoutParams params = (FrameLayout.MarginLayoutParams) containerDock.getLayoutParams();
Resources resources = inflater.getContext().getResources();
int newHeaderMargin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 30, resources.getDisplayMetrics());
int offsetToZero = -resources.getDimensionPixelSize(R.dimen.lb_browse_rows_margin_top);
params.topMargin = offsetToZero+newHeaderMargin;
containerDock.setLayoutParams(params);
return view;
}
IanZ解决方案完美运行。 获取主容器的其他方法是FrameLayout containerDock = getView().findViewById(R.id.browse_container_dock);
在主片段中没有覆盖oncreateView
方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.