【问题标题】:AndroidTV - change color of rows header [BrowseFragment]AndroidTV - 更改行标题的颜色 [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>

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

【问题讨论】:

    标签: android android-tv browsefragment


    【解决方案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_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 这两个很棒的帖子。

    希望这会有所帮助:)

    【讨论】:

      【解决方案2】:

      &lt;item name="rowHeaderStyle"&gt;@style/header_style&lt;/item&gt; 在你的主要活动风格中

      `  <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>`
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-28
        • 1970-01-01
        • 2017-10-27
        • 2019-04-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多