代码之家  ›  专栏  ›  技术社区  ›  user2875404

android工具栏可以更改后退按钮颜色,但不能更改标题颜色

  •  1
  • user2875404  · 技术社区  · 7 年前

    我想换我的 Toolbar 标题颜色为蓝色。它保持白色。我可以设置后退按钮,但不能设置标题颜色-我是否遗漏了什么?

    我试着在三个不同的地方改变它:

    活动

        Toolbar toolbar = (Toolbar) findViewById(R.id.detail_toolbar);
        toolbar.setTitleTextColor(0xff00ff99);
        setSupportActionBar(toolbar);
    

    活动XML

            <android.support.v7.widget.Toolbar
                android:id="@+id/detail_toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:theme="@style/ToolBarStyle"
                android:background="@color/colorPrimaryDark"
                android:titleTextColor="@android:color/holo_red_dark"
                app:subtitleTextColor="@color/colorPrimaryDark"
                app:layout_collapseMode="pin"
    
                app:popupTheme="@style/ToolBarStyle" />
    

    V21样式.xml

        <!-- ToolBar -->
        <style name="ToolBarStyle" parent="Theme.AppCompat">
    
        <item name="titleTextColor">@color/colorPrimaryDark</item>
        <item name="android:titleTextColor">@color/colorPrimaryDark</item>
        <item name="android:textColorPrimary">@color/colorPrimaryDark</item>
        <item name="android:textColorSecondary">@color/colorPrimaryDark</item>
        <item name="actionMenuTextColor">@color/colorPrimaryDark</item>
        <item name="android:textColor">@color/colorPrimaryDark</item>
    </style>
    

    XML语言

        <style name="ToolBarStyle" parent="Theme.AppCompat">
        <item name="titleTextColor">@color/colorPrimaryDark</item>
        <item name="android:titleTextColor">@color/colorPrimaryDark</item>
        <item name="android:textColorPrimary">@color/colorPrimaryDark</item>
        <item name="android:textColorSecondary">@color/colorPrimaryDark</item>
        <item name="actionMenuTextColor">@color/colorPrimaryDark</item>
        <item name="android:textColor">@color/colorPrimaryDark</item>
    </style>
    

    我错过了什么? 不管怎样它都是白色的。在整个项目中,我甚至浏览了150个对“ffffff”的引用,但没有一个工具栏在那里被引用。

    targetsdk 26,在android 7.1.1上运行

    4 回复  |  直到 7 年前
        1
  •  1
  •   Muhammadjon    7 年前

    创建自定义 Toolbar 这样地:

    工具栏布局.xml

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.design.widget.AppBarLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fitsSystemWindows="false"
        android:theme="@style/AppTheme.AppBarOverlay">
    
        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?android:attr/actionBarSize"
            android:background="@android:color/backgroundColor"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
            app:theme="@style/Base.Theme.AppCompat.Light.DarkActionBar">
    
            <TextView
                android:id="@+id/toolbar_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="@color/blue"/>
    
        </android.support.v7.widget.Toolbar>
    </android.support.design.widget.AppBarLayout>
    

    在布局中包含它:

    <include layout="@layout/toolbar_layout"/>
    

    在活动的oncreate方法中使用它:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_new_card);
    
        Toolbar toolbar = findViewById(R.id.toolbar);
        TextView toolbarTitle = findViewById(R.id.toolbar_title);
    
        setSupportActionBar(toolbar);
        if (getSupportActionBar() != null)
            getSupportActionBar().setDisplayShowTitleEnabled(false);
    
        toolbarTitle.setText("Your title");
        ...
    }
    

    希望能有所帮助。

        2
  •  1
  •   Rahul Sharma    7 年前

    尝试更改此:

    android:titletextcolor=“@android:color/holo_red_dark”

    到:

    app:titletextcolor=“@android:color/holo_red_dark”

    在你 活动XML android.support.v7.widget.Toolbar 部分。

        3
  •  0
  •   user2875404    7 年前

    好的,所以我已经找到了答案,从字面上堆栈跟踪我的代码。

    我有一个传呼机传回不同的碎片。我想每个人 Activity Tabbar (这是每个选项卡的主/细节模式),因为我必须设置如下内容 setSupportActionBar() 我在以后的工作中 Activities .

    堆栈跟踪我的代码我意识到 CollapsingToolbarLayout 按视图ID查找。这是我设置栏标题的位置。从那里,我没有找到任何产权,但我已经让自动完成引导我到 setCollapsedTitleTextColor setExpandedTitleColor .

    所以尽管 getColor() 部分已弃用

    bar.setCollapsedTitleTextColor(getResources().getColor(R.color.colorPrimaryDark));
    bar.setExpandedTitleColor(getResources().getColor(R.color.colorPrimaryDark));
    

    仍然不知道为什么我设置的其他地方没有做到这一点,但很高兴它现在工作。

        4
  •  0
  •   Jaspreet Kaur    7 年前

    在布局文件中,使用工具栏作为AppBarLayout的子布局

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    <android.support.design.widget.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:theme="@style/AppTheme.AppBarOverlay">
    
            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="?attr/colorPrimary"
                app:popupTheme="@style/AppTheme.PopupOverlay">
    
            </android.support.v7.widget.Toolbar>
        </android.support.design.widget.AppBarLayout>
    </LinearLayout>
    

    XML

    <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
    <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
    

    内部主要活动

     @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
           Toolbar  toolbar = (Toolbar) findViewById(R.id.toolbar);
            setSupportActionBar(toolbar);
    }