AndroidTV - 更改行标题的颜色[BrowseFragment]

标签 android android-tv browsefragment

我在 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>

但这不仅会改变出现在行上方的文本,还会改变抽屉导航文本。我很想得到第一个答案(抽屉导航项目标题有不同的颜色)。

最佳答案

如果我正确理解你的问题,你想在 android leanback 库的浏览器 fragment 中更改行标题呈现器的颜色。为此,您可以自己设计标题布局以实现此目标。 首先你需要设计一个自定义的 android 布局,我们称之为 custom_header_layout

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        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 customizationBrowseFragment ListRow customization .

希望这有帮助:)

关于AndroidTV - 更改行标题的颜色[BrowseFragment],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46198605/

相关文章:

android-tv - android leanback 搜索片段

android - 如何从 BrowseFragment 中删除 header ?

javascript - 基本的多文件上传不适用于移动设备

android - 如何区分方向键运动和操纵杆运动?

java - Android 尝试删除我的应用程序中的文件,但仅删除我的应用程序创建的文件

android - 移除 SearchOrbView 安卓电视

android-tv - 将按钮添加到 BrowseFragment

android - 在数据库中存储可翻译的 android 字符串的最佳实践

java - Android Java 异常,即使在字符串 null 或空检查之后