AndroidTV - изменить цвет заголовка строки [BrowseFragment]

Я нашел что-то похожее в SO: Android-TV Изменение цвета текста и шрифта заголовка строки просмотра фрагмента

Следуя теме ответа я придумал это:

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

Но это меняет не только текст, который появляется над строками, но и текст в навигационной панели. Я хотел бы получить ответ для первого (с другим цветом для заголовков элементов навигационного ящика).

2 ответа

Если я правильно понимаю ваш вопрос, вы хотите изменить цвет ведущего заголовка строки во фрагменте браузера библиотеки Android Leadback. для этого вы можете самостоятельно разработать макет заголовка для достижения этой цели. Во- первых, вам нужно разработать собственный макет 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, чтобы установить макет заголовка в подобие браузера:

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 и Настройка ListFow BrowseFragment.

надеюсь это поможет:)

в вашем основном стиле деятельности

      `  <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>`
Другие вопросы по тегам