使工具栏透明

Nab*_*l K 16 android toolbar transparent

create_account.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 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="match_parent"
android:fitsSystemWindows="true"
tools:context="io.sleeko.board.CreateAccountActivity">

<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.design.widget.AppBarLayout>

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

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|end"
    android:layout_margin="@dimen/fab_margin"
    android:src="@android:drawable/ic_dialog_email" />

</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

我需要使上述ToolBar透明.这样我们就可以看到背景Image.I尝试了不同的方法.但找不到正确的解决方案.

请帮忙.谢谢

Sot*_*tti 52

大多数时候,我们希望工具栏是半透明的,因为我们想要显示它背后的内容.问题是工具栏后面的内容颜色可能会与工具栏元素/文本的颜色(例如向上/向后箭头)发生碰撞.

出于这个原因,你会在很多实现中看到工具栏实际上不是透明的,而是带有渐变的半透明.

您可以使用下一个代码获取此信息:

<?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:tools="http://schemas.android.com/tools"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="@drawable/background_toolbar_translucent" />
Run Code Online (Sandbox Code Playgroud)

background_toolbar_translucent.xml

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

<shape
    xmlns:android="http://schemas.android.com/apk/res/android">

    <gradient
        android:angle="270"
        android:endColor="@android:color/transparent"
        android:startColor="@color/black_alpha_40"/>
</shape>
Run Code Online (Sandbox Code Playgroud)

colors.xml

<color name="black_alpha_40">#66000000</color>
Run Code Online (Sandbox Code Playgroud)

您可以在渐变上使用不同的值,我发现对于白色元素,黑色40%可以正常工作.

您可能想要做的另一件事是隐藏工具栏的标题.

getSupportActionBar().setDisplayHomeAsUpEnabled(true);
Run Code Online (Sandbox Code Playgroud)

并展示出可承受性......

getSupportActionBar().setDisplayShowTitleEnabled(false);
Run Code Online (Sandbox Code Playgroud)

如果您在布局预览面板中看到类似的内容,请不要担心... 在此输入图像描述

当实际重叠内容时,它看起来非常不同:

在此输入图像描述

  • 谢谢,这很好用.如果您正在使用AppBarLayout,请确保将行:android:background ="@ drawable/background_toolbar_translucent"行应用于AppBaryLayout并保留工具栏而不显示背景. (2认同)

小智 5

这是我的解决方案.

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/AppTheme.AppBarOverlay"
    android:background="#00000000">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        app:popupTheme="@style/AppTheme.PopupOverlay" />
Run Code Online (Sandbox Code Playgroud)


Moh*_*med 0

尝试一下:

<android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="@android:color/transparent"
        app:theme="@style/ThemeOverlay.AppCompat.ActionBar" />
Run Code Online (Sandbox Code Playgroud)

并用结束标记删除它:

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/AppTheme.AppBarOverlay">
Run Code Online (Sandbox Code Playgroud)

但不要使其完全透明,您可以使用具有透明度的颜色,#93000000如下所示:

<android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="#93000000"
        app:theme="@style/ThemeOverlay.AppCompat.ActionBar" />
Run Code Online (Sandbox Code Playgroud)