如何在Android Studio中实现透明Toolbar
Hey there! 想在Android Studio里把Toolbar弄成透明效果?这事儿不难,我给你整理了几个常用又靠谱的方法,按需选就行:
方法一:直接在布局文件里设置(最快最直接)
打开你的Toolbar所在的布局XML文件,给Toolbar标签加两个属性就搞定:
<androidx.appcompat.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" <!-- 设置透明背景 --> android:background="@android:color/transparent" <!-- 去掉Toolbar默认的阴影,不然透明后阴影会很突兀 --> app:elevation="0dp" />
要是想要半透明效果,就把@android:color/transparent换成带透明度的颜色值,比如#80FFFFFF(前两位是透明度,00全透明,FF不透明)。
方法二:通过主题样式统一设置(适合整个App的Toolbar都要透明)
如果你的App所有页面的Toolbar都需要透明,直接在主题里配置更省心:
- 打开
res/values/styles.xml,定义一个透明Toolbar的样式:
<style name="TransparentToolbar" parent="Widget.AppCompat.Toolbar"> <item name="android:background">@android:color/transparent</item> <item name="elevation">0dp</item> </style>
- 然后在你的App主题里引用这个样式:
<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar"> <!-- 其他主题属性 --> <item name="toolbarStyle">@style/TransparentToolbar</item> </style>
这样所有使用默认Toolbar样式的地方都会自动变成透明啦。
方法三:代码动态设置(适合需要动态切换透明度的场景)
如果需要根据用户操作或者页面状态切换Toolbar的透明度(比如滚动时变透明/不透明),可以在Activity或Fragment里写代码:
Java版本:
Toolbar toolbar = findViewById(R.id.toolbar); // 设置全透明 toolbar.setBackgroundColor(Color.TRANSPARENT); // 或者设置半透明(alpha值范围0-255,0全透明,255不透明) toolbar.getBackground().setAlpha(128); // 别忘了去掉阴影 toolbar.setElevation(0);
Kotlin版本:
val toolbar = findViewById<Toolbar>(R.id.toolbar) toolbar.setBackgroundColor(Color.TRANSPARENT) toolbar.background.alpha = 128 toolbar.elevation = 0f
小提醒
- 要是Toolbar下面的内容没透上来,检查一下布局层级,确保Toolbar所在的布局没有设置不透明的背景色。
- 如果用了
CoordinatorLayout配合滚动,可能还要调整app:layout_scrollFlags和AppBarLayout的属性,避免滚动时出现异常。
内容的提问来源于stack exchange,提问作者FlyHD
相关产品推荐
相关产品推荐

