AndroidTV - 更改行标题的颜色 [BrowseFragment]
Posted
技术标签:
【中文标题】AndroidTV - 更改行标题的颜色 [BrowseFragment]【英文标题】:AndroidTV - change color of rows header [BrowseFragment] 【发布时间】:2018-02-22 05:28:13 【问题描述】:我在 SO:android-tv Changing text color and font of browse fragment rows header 中发现了类似的东西
我想出了以下主题答案:
<style name="CustomRowHeaderStyle" parent="Widget.Leanback.Row.Header">
<item name="android:textColor">@color/red</item>
</style>
但这不仅会更改显示在行上方的文本,还会更改导航抽屉文本。我很想得到第一个的答案(导航抽屉项目标题的颜色不同)。
【问题讨论】:
【参考方案1】:如果我正确理解了您的问题,您想在 androidleaback 库的浏览器片段中更改行标题演示器的颜色。为此,您可以自行设计标题布局以实现此目标。 首先你需要设计一个自定义的 android 布局,我们称之为 custom_header_layout
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_>
<TextView
android:layout_
android:layout_
android:id="@+id/text_view"
android:text="sample_text"/>
</FrameLayout>
然后您需要创建新类并扩展 ListRowPresenter 以将标题布局设置为 browserfragment,如下所示:
public class MainListRowPresenter extends ListRowPresenter
public MainListRowPresenter()
setHeaderPresenter(new MainRowHeaderPresenter(R.layout.custom_header_layout));
@Override
protected void onBindRowViewHolder(RowPresenter.ViewHolder holder, Object item)
然后最后扩展 RowHeaderPresenter 并将数据设置到 browserfragment 中的标题:
public class MainRowHeaderPresenter extends RowHeaderPresenter
public MainRowHeaderPresenter(int layoutResourceId)
super(layoutResourceId);
@Override
public void onBindViewHolder(Presenter.ViewHolder viewHolder, Object item)
//do something hear
更多详情请查看BrowseFragment Header customization 和BrowseFragment ListRow customization 这两个很棒的帖子。
希望这会有所帮助:)
【讨论】:
【参考方案2】:<item name="rowHeaderStyle">@style/header_style</item>
在你的主要活动风格中
` <style name="header_style">
<item name="android:layout_marginStart">5dp</item>
<item name="android:textSize">18sp</item>
<item name="android:textColor">@color/white</item>
</style>`
【讨论】:
以上是关于AndroidTV - 更改行标题的颜色 [BrowseFragment]的主要内容,如果未能解决你的问题,请参考以下文章