Android 电视:从 ListRowPresenter 中的项目移除阴影

Android TV: Remove shadow from Item in ListRowPresenter

当水平列表未处于焦点时,我试图从列表项中删除阴影。我正在从 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 应该从列表行中删除阴影,但它没有提供所需的行为。任何人都可以指出一些 类 或任何有用的例子吗?

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

    listRowPresenter.shadowEnabled = false
    listRowPresenter.selectEffectEnabled = false

它会移除项目的阴影。要进行更多自定义,您可以覆盖在 ListRowPresenter.

中初始化的 ShadowOverlayHelper class