You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android如何为Toolbar(应用栏/标题栏)添加渐变色背景?

给Toolbar添加渐变色背景的详细步骤

别担心,我来一步步帮你搞定这个渐变Toolbar的设置,你已经准备好了渐变的drawable文件,接下来只需要简单几步就能实现效果,我会给你两种可行的方案:


方案一:直接给系统Toolbar设置渐变背景(最简单快捷)

1. 修改你的Activity布局文件

在你要使用Toolbar的布局里,添加androidx.appcompat.widget.Toolbar组件,并把它的背景设置为你创建的渐变drawable:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <!-- 这里添加Toolbar -->
    <androidx.appcompat.widget.Toolbar
        android:id="@+id/my_toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="@drawable/side_nav_bar"
        android:elevation="4dp" />

    <!-- 你的其他布局内容 -->
</LinearLayout>

2. 设置Activity主题为无默认ActionBar

打开AndroidManifest.xml,找到对应的Activity,把它的主题设置为Theme.MaterialComponents.DayNight.NoActionBar(或者你使用的AppCompat主题下的NoActionBar版本),避免默认ActionBar和自定义Toolbar冲突:

<activity
    android:name=".YourActivity"
    android:exported="true"
    android:theme="@style/Theme.YourAppName.NoActionBar" />

3. 在Activity代码中初始化Toolbar

在Activity的onCreate方法里,找到Toolbar并设置为应用的ActionBar:

// Kotlin代码
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.your_activity_layout)
    
    val toolbar = findViewById<Toolbar>(R.id.my_toolbar)
    setSupportActionBar(toolbar)
    // 如果你需要修改标题等,还可以加下面的代码
    supportActionBar?.title = "渐变标题栏"
}
// Java代码
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.your_activity_layout);
    
    Toolbar toolbar = findViewById(R.id.my_toolbar);
    setSupportActionBar(toolbar);
    // 修改标题
    if (getSupportActionBar() != null) {
        getSupportActionBar().setTitle("渐变标题栏");
    }
}

方案二:创建自定义Toolbar布局(适合更复杂的定制需求)

如果你需要给Toolbar添加更多自定义元素(比如额外的按钮、文字等),可以创建一个独立的Toolbar布局文件:

1. 创建自定义Toolbar布局文件

在layout文件夹下新建toolbar_custom.xml,内容如下:

<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/custom_toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="@drawable/side_nav_bar"
    android:elevation="4dp">

    <!-- 这里可以添加自定义元素,比如TextView、ImageView等 -->
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="我的自定义标题"
        android:textColor="@android:color/white"
        android:textSize="18sp" />

</androidx.appcompat.widget.Toolbar>

2. 在Activity布局中引用这个自定义Toolbar

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <!-- 引用自定义Toolbar布局 -->
    <include layout="@layout/toolbar_custom" />

    <!-- 你的其他布局内容 -->
</LinearLayout>

3. 同样在Activity中初始化Toolbar

和方案一的第三步一样,在onCreate中找到Toolbar并设置为ActionBar即可,代码完全相同。


最后检查一下你的side_nav_bar.xml文件,确保它的格式正确(你提供的代码少了闭合标签,记得补上</shape>):

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <gradient
        android:angle="135"
        android:endColor="#7524f6"
        android:startColor="#2691f6"
        android:type="linear" />
</shape>

这样设置完成后,运行你的App就能看到带有渐变色背景的Toolbar啦!

内容的提问来源于stack exchange,提问作者Arda Çebi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:35:47