我在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>
但这不仅会更改显示在行上方的文本,还会更改导航抽屉文本。我很想得到第一个答案(导航抽屉项目标题有不同的颜色)。
答案 0 :(得分:2)
如果我正确理解你的问题,你想在android leanback库的浏览器片段中更改行标题演示者的颜色。为此,您可以自己设计标题布局以实现此目标。 首先你需要设计一个自定义的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 customization和BrowseFragment ListRow customization。
希望这有助于:)