我想动态自定义工具栏标题文本的颜色。我尝试了以下方法,但以下所有方法均失败。在运行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()
和setExpandedTitleColor()
CollapsingToolbarLayout
。以下是我的代码。
val textColor = Color.parseColor("#00FF00")
collapsingToolbarLayout.setExpandedTitleColor(textColor)
collapsingToolbarLayout.setCollapsedTitleTextColor(textColor)
<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>