从 Android TV 中的 BrowseFragment 移除上边距
Remove top margin from BrowseFragment in Android TV
如何删除空白 space,如下图 BrowseFragment
中的虚线框所示。我设法删除了搜索按钮和标题。虽然,我也想删除空白 space 并在屏幕顶部移动视频行。
有什么办法吗?
我尝试在我的 AppTheme 中设置以下内容,但我怀疑它是否有用:
<item name="browseRowsMarginTop">0dp</item>
<item name="browsePaddingTop">0dp</item>
您可以使用 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
。
Default value may be 167dp
given.
<dimen name="lb_browse_rows_margin_top">167dp</dimen>
So change it to around 30dp
or as per your need.
<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
方法。
如何删除空白 space,如下图 BrowseFragment
中的虚线框所示。我设法删除了搜索按钮和标题。虽然,我也想删除空白 space 并在屏幕顶部移动视频行。
有什么办法吗?
我尝试在我的 AppTheme 中设置以下内容,但我怀疑它是否有用:
<item name="browseRowsMarginTop">0dp</item>
<item name="browsePaddingTop">0dp</item>
您可以使用 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
。
Default value may be
167dp
given.
<dimen name="lb_browse_rows_margin_top">167dp</dimen>
So change it to around
30dp
or as per your need.
<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
方法。