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



我想动态自定义工具栏标题文本颜色。 我尝试了以下方法,但以下所有方法都失败了。 我也尝试在运行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" />

解决了我通读CollapsingToolbarLayout源代码的问题,当应用CollapsingToolbarLayout时,不应该用Toolbar函数setTitleTextColor()改变标题文本颜色,而是用方法setCollapsedTitleTextColor()CollapsingToolbarLayoutsetExpandedTitleColor()。 以下是我的代码。

  • 在活动中
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>

最新更新