更改工具栏文字颜色

时间:2016-07-01 08:58:51

标签: android material-design toolbar

我正在尝试更改工具栏的文本颜色,但无效。这是我的代码。

styles.xml     

<!-- Base application theme. -->
<style name="BasicTheme" parent="Theme.AppCompat.Light.NoActionBar">

</style>
<style name="ToolbarTheme" parent="BasicTheme">
    <item name="android:textColor">@color/text_color</item>
</style>

tool_lay

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar     
   xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto"
   xmlns:appo="http://schemas.android.com/tools"
   android:orientation="vertical"
   android:layout_width="match_parent"
   android:layout_height="?attr/actionBarSize"
   android:id="@+id/toolbar"
   android:elevation="10dp"
   android:background="@color/colorPrimary"
   appo:theme="@style/ToolbarTheme"
 >

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"

tools:context="testing.theo.aelfootballclub.MainActivity"
android:background="#3d827e">
<include

    android:id="@+id/toolbar"
    layout="@layout/tool_lay"

    />
<LinearLayout
    android:padding="20dp"
    android:background="#6e7398"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:layout_width="wrap_content"
    android:orientation="vertical"
    android:layout_height="wrap_content">

    <EditText
        android:id="@+id/user_name"
        android:hint="Userame"
        android:layout_width="250dp"
        android:layout_height="wrap_content" />
    <EditText
        android:id="@+id/user_pass"
        android:layout_width="250dp"
        android:layout_height="wrap_content"
        android:inputType="textPassword"
        android:layout_marginTop="20dp"
        android:hint="Κωδικός"
        />
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <Button
            android:layout_gravity="center_horizontal"
            android:text="Εισοδος"
            android:layout_marginTop="20dp"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:onClick="userLogin"/>

        <Button
            android:layout_marginTop="20dp"
            android:layout_gravity="center_horizontal"
            android:text="Εγγραφη"
            android:layout_width="0dp"
            android:onClick="userReg"
            android:layout_weight="1"
            android:layout_height="wrap_content" />

    </LinearLayout>

    <TextView
        android:textStyle="bold|italic"
        android:textSize="25sp"
        android:layout_gravity="center_horizontal"
        android:text="Ξεχασες τον κωδικό?"
        android:id="@+id/forgotPass"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

最后是 MainActivity

public class MainActivity extends AppCompatActivity {
Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    setToolbar();
}
private void setToolbar(){
    toolbar = (Toolbar)findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
  }

}

工具栏的背景颜色很好。我可以把它改成我想要的任何颜色。

任何想法,

感谢。

7 个答案:

答案 0 :(得分:4)

你可以这样做

private void setToolbar(){
    toolbar = (Toolbar)findViewById(R.id.toolbar);
    toolbar.setTitleTextColor(ContextCompat.getColor(getApplicationContext(),R.color.yellow));
setSupportActionBar(toolbar);
  }

答案 1 :(得分:2)

使用ToolbarTheme覆盖titleTextAppearance样式:

<style name="ToolbarTheme" parent="BasicTheme">
    <item name="titleTextAppearance">@style/ToolbarTheme.Title</item>
</style>

<style name="ToolbarTheme.Title" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
    <item name="android:textColor">{your_color}</item>
</style>

答案 2 :(得分:1)

       Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        // Title and subtitle
        toolbar.setTitle(R.string.about_toolbar_title);
        toolbar.setSubtitleTextColor(Color.WHITE);
        toolbar.setTitleTextColor(Color.WHITE);
        toolbar.setBackgroundColor(getResources().getColor(
                R.color.themeToolbarColor));
        toolbar.setNavigationIcon(R.drawable.ic_action_back);
        toolbar.setNavigationOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                finish();
            }
        });

答案 3 :(得分:0)

在您的主题中添加此内容,

  <item name="actionMenuTextColor">@color/actionMenuTextColor</item>

答案 4 :(得分:0)

Zagórski的回答更改了标题的主题,而您可以只设置标题文字颜色:设置android:textColor而不是定义android:textColorPrimary

答案 5 :(得分:0)

使用xml属性更改工具栏中的文本颜色

app:titleTextColor="@color/colorAccent"

答案 6 :(得分:0)

将此添加到您的 themes.xml 文件

<style name="Theme.YourAppName" parent="Theme.MaterialComponents.DayNight.DarkActionBar">