在 BrowseFragment 中禁用行缩放/展开

Posted

技术标签:

【中文标题】在 BrowseFragment 中禁用行缩放/展开【英文标题】:Disable row scaling / expand in BrowseFragment 【发布时间】:2017-01-23 07:25:40 【问题描述】:

我还没有找到任何文档如何在将焦点从标题切换到 BrowseFragment 中的片段时禁用行缩放。

Leanback 版本 24.2.0

BrowseFragment 有一个函数enableMainFragmentScaling 可以部分解决问题。图像现在具有完整尺寸,但标题仍未像在 PlayStore 应用程序、Youtube 应用程序中那样扩展。聚焦一行时的展开(无动画)。

到目前为止我做了什么:

enableMainFragmentScaling(false); 在 BrowseFragment 中 setExpand(false); 在嵌套的 RowsFragments 中。但这并没有改变任何东西。

该代码与演示leanback 项目非常相似。但是他们在那里启用了行缩放。 Demo on Github

【问题讨论】:

【参考方案1】:

我可以通过在RowsFragment 中调用setExpand(true) 作为onCreateView() 的第一行来实现这种效果。

如果你想永远锁定这个效果,你可以在你的RowsFragment 中覆盖setExpand(...),然后调用super.setExpand(true)。我相信你仍然需要onCreateView() 的初始呼叫。

【讨论】:

如果您覆盖并始终返回 true... 我可以确认您不需要在 onCreateView 中调用此方法。 这似乎不适用于BrowseSupportFragment【参考方案2】:

在您的BrowseSupportFragment.MainFragmentAdapterProvider 实现中,尝试在返回片段适配器之前禁用缩放。

    override fun getMainFragmentAdapter(): BrowseSupportFragment.MainFragmentAdapter<*> 
        val mainFragmentAdapter = MainFragmentAdapter(this)
        mainFragmentAdapter.isScalingEnabled = false
        return mainFragmentAdapter
    

【讨论】:

【参考方案3】:

你应该打电话给

enableRowScaling(false);

在您的 MainFragment.java 类的 onActivityCreated() 方法上

【讨论】:

这已被弃用。使用@Kyle Venn 方法。

以上是关于在 BrowseFragment 中禁用行缩放/展开的主要内容,如果未能解决你的问题,请参考以下文章

BrowseFragment 上的另一个行层

禁用 TableLayoutPanel 行自动缩放

Android TV 在 BrowseFragment 中重新加载数据

如何始终在 Leanback BrowseFragment 中显示标题侧栏?

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

在 BrowseFragment 之外重用 AndroidTV RowsFragment