Панель инструментов не может настроить цвет текста заголовка - PullRequest
0 голосов
/ 26 мая 2020

Я хочу динамически настраивать цвет текста заголовка панели инструментов. Я пробовал следующие методы, но все методы ниже не помогли. Я также пытался установить цвет перед запуском setSupportActionBar(toolbar), но все равно не удалось. Я также искал и пробовал методы из Stack Overflow, но все также не удалось.

Как я могу это сделать?

textColor = Color.parseColor("#00FF00")
toolbar.setTitleTextColor(textColour)
textColor = Color.parseColor("#00FF00")
(toolbar::class.java.getDeclaredField("mTitleTextView")
   .apply { isAccessible = true }
   .get(toolbar) as TextView)
   .setTextColor(textColour)
<androidx.appcompat.widget.Toolbar
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:id="@+id/toolbar"
    app:titleTextColor="#00FF00"
    app:popupTheme="@style/AppTheme.PopupOverlay"
    app:layout_collapseMode="pin" />

1 Ответ

0 голосов
/ 26 мая 2020

Проблема была решена тем, что я прочитал исходный код CollapsingToolbarLayout, когда применяется CollapsingToolbarLayout, цвет текста заголовка должен изменяться не с помощью Toolbar функции setTitleTextColor(), а с помощью методов setCollapsedTitleTextColor() и setExpandedTitleColor() из CollapsingToolbarLayout. Ниже приведен мой код.

  • В действии
val textColor = Color.parseColor("#00FF00")
collapsingToolbarLayout.setExpandedTitleColor(textColor)
collapsingToolbarLayout.setCollapsedTitleTextColor(textColor)
  • В xml макете
<com.google.android.material.appbar.CollapsingToolbarLayout
    android:layout_width="match_parent"
    android:layout_height="270dp"
    app:layout_scrollFlags="scroll|exitUntilCollapsed"
    app:toolbarId="@id/toolbar"
    android:id="@+id/collapsingToolbarLayout">
    ...
    <androidx.appcompat.widget.Toolbar
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:id="@+id/toolbar"
        app:popupTheme="@style/AppTheme.PopupOverlay"
        app:titleTextColor="@color/black"
        app:layout_collapseMode="pin" />
    ...
</com.google.android.material.appbar.CollapsingToolbarLayout>
...