工具栏无法自定义标题文字颜色

问题描述 投票:0回答:1

我想动态自定义工具栏标题文本的颜色。我尝试了以下方法,但以下所有方法均失败。在运行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" />
android toolbar androidx
1个回答
0
投票

[当我应用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>
© www.soinside.com 2019 - 2024. All rights reserved.