我在 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 customization和 BrowseFragment ListRow customization .
希望这有帮助:)
关于AndroidTV - 更改行标题的颜色[BrowseFragment],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46198605/