gpt4 book ai didi

安卓电视 : VerticalGridFragment shadow dimension and color

转载 作者:太空宇宙 更新时间:2023-11-03 10:36:53 25 4
gpt4 key购买 nike

我正在开发一个 Android TV 应用程序,但我对 VerticalGridFragment 呈现的标准阴影不太满意,我希望它更小,更暗一些。

我搜索了代码,但没有找到任何完整的工作解决方案。在我的 VerticalGridPresenter 子类中,我唯一可以覆盖的方法是 createShadowOverlayOptions 但我得不到我想要的结果。

我想到的唯一解决方法是定义以下维度,以便覆盖支持库中声明的维度:

<dimen name="lb_material_shadow_details_z">3dp</dimen>
<dimen name="lb_material_shadow_focused_z">4dp</dimen>
<dimen name="lb_material_shadow_normal_z">3dp</dimen>

但这更像是一种 hack 而不是正确的解决方案。

这是标准的阴影:

Standard shadow

这是我使用当前 hack 得到的结果:

enter image description here

如您所见,它变小了,但我无法更改颜色。

是否有适当的方法来为 VerticalGridFragmentRowsFragment 类设置阴影颜色和尺寸?

我使用的是最新的 Leanback 版本:

compile 'com.android.support:leanback-v17:25.2.0'

我的 minSdkVersion 是 17,因为有一个自定义的 Android TV 播放器,但从 21 开始就可以正常工作了。

最佳答案

实际上,我之前就此问题询问过 Leanback 团队,他们说自定义组件的推荐方法是覆盖样式和维度。因此,这可能有助于减轻您的一些担忧。

但是,我们还必须自定义 View 上的阴影。我们通过创建我们自己的 View 和我们自己的 View 呈现器(而不是使用它们的 ImageCardView)来做到这一点。这样我们就可以在演示级别设置自己的阴影。

如果您查看 ListRowPresenter 的文档文档说:

ListRowPresenter applies a default shadow to each child view. Call setShadowEnabled(boolean) to disable shadows. A subclass may override and return false in isUsingDefaultShadow() and replace with its own shadow implementation.

要了解它们如何处理阴影的更多信息,请查看 ListRowPresenter 的源代码并查看 ShadowHelperShadowHelperApi21 类看看他们是如何为他们的列表项添加阴影的。我们实际上只是复制了这两个类,因为它们是包本地的。

您还可以覆盖 ListRowPresenter 中的 ShadowOverlayHelper.Options createShadowOverlayOptions(),这使您能够更改角半径以及聚焦和未聚焦的 z。

关于安卓电视 : VerticalGridFragment shadow dimension and color,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42623677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com