我想动态自定义工具栏标题文本颜色。 我尝试了以下方法,但以下所有方法都失败了。 我也尝试在运行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()
和CollapsingToolbarLayout
的setExpandedTitleColor()
。 以下是我的代码。
- 在活动中
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>