Android TV:从 ListRowPresenter 中的项目中删除阴影

Posted

技术标签:

【中文标题】Android TV:从 ListRowPresenter 中的项目中删除阴影【英文标题】:Android TV: Remove shadow from Item in ListRowPresenter 【发布时间】:2018-12-30 13:58:45 【问题描述】:

当水平列表不在焦点时,我试图从列表项中删除阴影。我正在从RowSupportFragment 扩展我的片段,然后像这样创建ListRowPresenter

val listRowPresenter = ListRowPresenter(FocusHighlight.ZOOM_FACTOR_XSMALL)
    listRowPresenter.shadowEnabled = false
    ArrayObjectAdapter listRowAdapter = ArrayObjectAdapter(listRowPresenter)

然后在数据来自服务器时添加两个ArrayObjectAdapter

    listRowAdapter?.add(ListRow(null, objectAdapter1))
    listRowAdapter?.add(ListRow(null, objectAdapter2))

listRowPresenter.shadowEnabled = false 行应该从列表行中删除阴影,但它没有提供所需的行为。任何人都可以指出一些课程或任何可能有帮助的例子吗?

【问题讨论】:

【参考方案1】:

我找到了解决方案,我将其发布以供将来参考。如果您想从未选中行的项目中移除阴影,您需要将这些添加到您ListRowPresenter

    listRowPresenter.shadowEnabled = false
    listRowPresenter.selectEffectEnabled = false

它会从项目中移除阴影。要进行更多自定义,您可以覆盖在 ListRowPresenter 内部初始化的 ShadowOverlayHelper 类。

【讨论】:

以上是关于Android TV:从 ListRowPresenter 中的项目中删除阴影的主要内容,如果未能解决你的问题,请参考以下文章

Android TV 从 URL 播放视频

如何从 Android TV 应用程序中删除垂直信箱?

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

ADB 连接到 Android TV / Nvidia Shield TV?

Android TV 开发之 TV视频播放器

Ridaex TV的Android 4.4版本不支持应用程序