3

我在 SO 中发现了类似的东西:android-tv 更改浏览片段行标题的文本颜色和字体

以下主题答案我想出了这个:

<style name="CustomRowHeaderStyle" parent="Widget.Leanback.Row.Header">
    <item name="android:textColor">@color/red</item>
</style>

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

4

2 回答 2

3

如果我正确理解了您的问题,您想在 androidleaback 库的浏览器片段中更改行标题演示器的颜色。为此,您可以自行设计标题布局以实现此目标。首先你需要设计一个自定义的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 自定义BrowseFragment ListRow 自定义

希望这可以帮助 :)

于 2017-09-14T05:53:47.893 回答
0

<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>`
于 2022-01-25T13:54:38.770 回答