工具栏标题文字颜色

Ale*_*xey 6 android android-theme android-toolbar

我的应用程序具有以下布局:

<android.support.design.widget.AppBarLayout
    android:id="@+id/appbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:fitsSystemWindows="true"
    app:expanded="false">

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapsing_toolbar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        app:contentScrim="?attr/colorPrimary"
        app:expandedTitleMarginEnd="64dp"
        app:expandedTitleMarginStart="48dp"
        app:layout_scrollFlags="scroll|exitUntilCollapsed">

        <ImageView
            android:id="@+id/header_image"
            android:layout_width="match_parent"
            android:layout_height="150dp"
            android:contentDescription="@string/app_name"
            android:fitsSystemWindows="true"
            app:layout_collapseMode="parallax" />

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:layout_collapseMode="pin">

        </android.support.v7.widget.Toolbar>

    </android.support.design.widget.CollapsingToolbarLayout>

</android.support.design.widget.AppBarLayout>
Run Code Online (Sandbox Code Playgroud)

另外应用主题如下

<style name="Theme.MyApp" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/primary</item>
    <item name="colorPrimaryDark">@color/primary_dark</item>
    <item name="colorAccent">@color/accent</item>
    <item name="android:windowIsTranslucent">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)

颜色在哪里:

<color name="primary">#5677fc</color>
<color name="primary_dark">#303f9f</color>
<color name="accent">#e040fb</color>
Run Code Online (Sandbox Code Playgroud)

设置标题我用

CollapsingToolbarLayout collapsingToolbar;
...
collapsingToolbar.setTitle(title);
Run Code Online (Sandbox Code Playgroud)

标题显示为黑色,我显示为白色。我该怎么做?

设置app:titleTextColor="@android:color/white"Toolbartoolbar.setTitleTextColor(0xffffff);都无济于事。

jma*_*tar 6

尝试这个

建立风格

<style name="collapsingToolbarLayoutTitleColor" parent="@android:style/TextAppearance.Medium">
    <item name="android:textSize">18sp</item>
    <item name="android:textColor">@color/white</item>
</style>
Run Code Online (Sandbox Code Playgroud)

然后,在折叠和展开样式时,在CollapsingToolbarLayout上添加样式。

mCollapsingToolbarLayout.setExpandedTitleTextAppearance(R.style.collapsingToolbarLayoutTitleColor);
mCollapsingToolbarLayout.setCollapsedTitleTextAppearance(R.style.collapsingToolbarLayoutTitleColor);
Run Code Online (Sandbox Code Playgroud)

  • 是否可以通过应用程序主题而不是以编程方式设置setExpandedTitleTextAppearance和setCollapsedTitleTextAppearance? (2认同)

Dor*_*ani 1

我认为你应该使用setCollapsedTitleTextColor()

collapsingToolbar.setCollapsedTitleTextColor(0xffffff);
Run Code Online (Sandbox Code Playgroud)

顺便说一句,您的 header_image 可能会占据屏幕的整个宽度并隐藏标题(也许应该是wrap_content):

android:layout_width="match_parent"
Run Code Online (Sandbox Code Playgroud)