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】:

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

【讨论】:

以上是关于AndroidTV - 更改行标题的颜色 [BrowseFragment]的主要内容,如果未能解决你的问题,请参考以下文章

QTableWidget - 更改行颜色

在 DevExpress GridView 上更改行颜色

根据列中的文本更改行颜色

悬停时更改行的背景颜色[关闭]

如果特定值在行内,则更改行中的背景颜色

根据其他行的索引更改行颜色