繁体   English   中英

从Android TV中的BrowseFragment中删除上边距

[英]Remove top margin from BrowseFragment in Android TV

如何删除空白区域,如BrowseFragment中下图中的虚线框所示。 我设法删除搜索按钮和标题。 虽然,我还想删除空白区域并在屏幕顶​​部移动视频行。

有没有办法做到这一点?

我尝试在我的AppTheme中设置以下内容,但我怀疑它有帮助:

    <item name="browseRowsMarginTop">0dp</item>
    <item name="browsePaddingTop">0dp</item>

在此输入图像描述

您可以使用dimens.xml v17 Lean Back库中提供的dimens.xml来完成此操作。

Follow the steps below first.

  1. 转到您的sdk - > extras - > android - > support - > v17 - > leanback - > res - > values

  2. 从他们的复制dimens.xml文件到您当前的leanback项目values文件夹。

  3. 现在,您在项目values文件夹中有了dimens.xml文件。

  4. 打开该文件,找到以下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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM