如何在 android tv 的详细概述中更改操作项的文本颜色/样式
Posted
技术标签:
【中文标题】如何在 android tv 的详细概述中更改操作项的文本颜色/样式【英文标题】:How to change text color / style for action items in details overview for android tv 【发布时间】:2017-07-07 13:09:34 【问题描述】:在使用leanback库的android tv中,我们将按钮文本作为CharSequence传递以填充详细信息概述中的操作项:new Action(long id, CharSequence label1, CharSequence label2, Drawable icon)
这里有一点上下文:如果您访问电影的详细信息页面(例如,到达),您会注意到操作按钮:“观看预告片”、“以 10.00 美元租用”、“以 20.00 美元购买”
我正在研究更改这些操作项的文本颜色/文本样式的方法,但到目前为止还没有成功。
有什么想法吗?
这是我的代码的 sn-p:
SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(price);
spannableStringBuilder.setSpan(new ForegroundColorSpan(Color.RED), 0, spannableStringBuilder.length(), 0);
addDetailsOverviewRowButton(1, "OWN FROM", html.fromHtml(spannableStringBuilder.toString()), getResources().getDrawable(R.drawable.xyz, null));
【问题讨论】:
您的代码看起来像什么不起作用?请提供一个 Minimal, Complete, and Verifiable example 来证明该问题。您也可以查看SO post 以供参考。 abielita,您的参考与我想要完成的有点不同。此外,我希望能够更改特定操作项的文本样式。不过,谢谢。 【参考方案1】:使用父 Theme.Leanback.Details
创建样式,您可以将项目添加为
<item name="detailsActionButtonStyle">@style/Theme.Detail.Action</item>
然后按照上面的项目创建另一个样式。
<style name="Theme.Detail.Action" parent="TextAppearance.Leanback.DetailsActionButton">
<item name="android:textColor">@color/detail_action_text_color</item>
<item name="android:textAppearance">@style/TextAppearance.Leanback.DetailsActionButton
</item>
<item name="android:background">@drawable/detail_action_selector</item>
</style>
这里,detail_action_selector 是可绘制的文件,它改变动作聚焦和不聚焦的背景。
【讨论】:
以上是关于如何在 android tv 的详细概述中更改操作项的文本颜色/样式的主要内容,如果未能解决你的问题,请参考以下文章
Android TV:如何通知 Card Presenter 项目更改