更改工具栏后退箭头颜色
Change toolbar back arrow color
你好。在上图中,您可以看到后退箭头和(部分)标题。我使用附加的 .xml 代码更改了标题颜色。但是我也想把后退箭头的颜色也改成白色。
我在网上看了一些答案,但是对于这样一个简单的问题,它们看起来太复杂了。
有什么简单的为什么要做?
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="fill_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/colorPrimary"
android:minHeight="?attr/actionBarSize"
app:titleTextColor="@android:color/white"/>
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
//...
public class LoginActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
//...
}
//...
}
您可以覆盖 Toolbar
中的主题。
使用 Material 组件主题:
<com.google.android.material.appbar.MaterialToolbar
style="@style/Widget.MaterialComponents.Toolbar.Primary"
android:theme="@style/MyThemeOverlay_Toolbar"
..>
与:
<style name="MyThemeOverlay_Toolbar2" parent="ThemeOverlay.MaterialComponents.Toolbar.Primary">
<!-- This attributes is used by navigation icon and overflow icon -->
<item name="colorOnPrimary">@color/secondaryColor</item>
</style>
具有 AppCompat 主题:
<android.support.v7.widget.Toolbar
android:theme="@style/myToolbarTheme"
...
>
然后在你的主题中你可以定义colorControlNormal
属性:
<style name="" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
....
<item name="colorControlNormal">@color/myColor</item>
</style>
注意您使用的主题。如果您从 https://developer.android.com/training/appbar/setting-up 复制了 ToolBar 代码,那么您将得到:
<android.support.v7.widget.Toolbar
android:id="@+id/my_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:elevation="4dp"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
根据@Gabriele 的回答(已投票),我不得不取出 android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
属性并将其放入 styles.xml
,然后像这样自定义 colorControlNormal
属性:
<style name="ToolBarTheme" parent="ThemeOverlay.AppCompat.ActionBar">
<item name="colorControlNormal">@color/white</item>
</style>
回到我的工具栏声明,我修改如下:
<android.support.v7.widget.Toolbar
...
android:theme="@style/ToolBarTheme"
/>
干杯!
对我来说,我使用的是我自己的可绘制后退数组。
首先将其添加到您的工具栏
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:titleTextColor="@color/White"
app:title="Your Title"
app:navigationIcon="@drawable/ic_back"
app:popupTheme="@style/AppTheme.PopupOverlay"
>
</androidx.appcompat.widget.Toolbar>
如你所见
app:navigationIcon="@drawable/ic_back"
是改变arraw的关键,下面是它的样子
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:width="24dp"
android:viewportWidth="24"
android:autoMirrored="true"
android:viewportHeight="24">
<path android:fillColor="#C87BB3" android:pathData="M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z" />
它是一个向量
你好。在上图中,您可以看到后退箭头和(部分)标题。我使用附加的 .xml 代码更改了标题颜色。但是我也想把后退箭头的颜色也改成白色。
我在网上看了一些答案,但是对于这样一个简单的问题,它们看起来太复杂了。
有什么简单的为什么要做?
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="fill_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/colorPrimary"
android:minHeight="?attr/actionBarSize"
app:titleTextColor="@android:color/white"/>
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
//...
public class LoginActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
//...
}
//...
}
您可以覆盖 Toolbar
中的主题。
使用 Material 组件主题:
<com.google.android.material.appbar.MaterialToolbar
style="@style/Widget.MaterialComponents.Toolbar.Primary"
android:theme="@style/MyThemeOverlay_Toolbar"
..>
与:
<style name="MyThemeOverlay_Toolbar2" parent="ThemeOverlay.MaterialComponents.Toolbar.Primary">
<!-- This attributes is used by navigation icon and overflow icon -->
<item name="colorOnPrimary">@color/secondaryColor</item>
</style>
具有 AppCompat 主题:
<android.support.v7.widget.Toolbar
android:theme="@style/myToolbarTheme"
...
>
然后在你的主题中你可以定义colorControlNormal
属性:
<style name="" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
....
<item name="colorControlNormal">@color/myColor</item>
</style>
注意您使用的主题。如果您从 https://developer.android.com/training/appbar/setting-up 复制了 ToolBar 代码,那么您将得到:
<android.support.v7.widget.Toolbar
android:id="@+id/my_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:elevation="4dp"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
根据@Gabriele 的回答(已投票),我不得不取出 android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
属性并将其放入 styles.xml
,然后像这样自定义 colorControlNormal
属性:
<style name="ToolBarTheme" parent="ThemeOverlay.AppCompat.ActionBar">
<item name="colorControlNormal">@color/white</item>
</style>
回到我的工具栏声明,我修改如下:
<android.support.v7.widget.Toolbar
...
android:theme="@style/ToolBarTheme"
/>
干杯!
对我来说,我使用的是我自己的可绘制后退数组。
首先将其添加到您的工具栏
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:titleTextColor="@color/White"
app:title="Your Title"
app:navigationIcon="@drawable/ic_back"
app:popupTheme="@style/AppTheme.PopupOverlay"
>
</androidx.appcompat.widget.Toolbar>
如你所见
app:navigationIcon="@drawable/ic_back"
是改变arraw的关键,下面是它的样子
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:width="24dp"
android:viewportWidth="24"
android:autoMirrored="true"
android:viewportHeight="24">
<path android:fillColor="#C87BB3" android:pathData="M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z" />
它是一个向量