Android 工具栏的背景没有变透明
Android toolbar not getting its background transparent
我有一个带有工具栏和导航抽屉的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:background="@android:color/transparent"
android:fitsSystemWindows="true"
android:orientation="vertical"
tools:context="com.my.app.GUI.MainActivity">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/mainBackground"
android:contentInsetEnd="0dp"
android:contentInsetLeft="0dp"
android:contentInsetRight="0dp"
android:contentInsetStart="0dp"
app:contentInsetEnd="0dp"
app:contentInsetLeft="0dp"
app:contentInsetRight="0dp"
app:contentInsetStart="0dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent">
<FrameLayout
android:id="@+id/frameLayoutTitleBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:padding="10dp">
<ImageView
android:id="@+id/imageViewHamburger"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@drawable/icon_hamburger_menu"/>
<TextView
android:id="@+id/textViewToolbarTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:gravity="center"
android:text="TITLE"
android:textColor="@android:color/white"
android:textSize="@dimen/very_large_font_size"/>
</FrameLayout>
<ImageView
android:id="@+id/imageViewToolbarRightSide"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/frameLayoutTitleBar"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/frameLayoutTitleBar"
android:layout_marginRight="10dp"
android:visibility="invisible"
app:srcCompat="@drawable/icon_hamburger_menu"/>
<View
android:id="@+id/viewTitleUnderLine"
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_alignParentBottom="true"
android:background="@color/secondaryBackground"/>
</RelativeLayout>
</android.support.v7.widget.Toolbar>
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
</FrameLayout>
</LinearLayout>
此所有布局稍后将作为 include
添加到另一个布局,其中包括导航抽屉的布局。
在我的代码中,我设置了图像、字符串以及工具栏的背景。
背景设置如下:
public static void setTitleBarBackgroundColor(int color)
{
if(toolBar != null)
{
toolBar.setBackgroundColor(color);
}
}
...
MyToolBarClass.setTitleBarBackgroundColor(getResources().getColor(android.R.color.transparent));
调用它时,颜色确实发生了变化,但工具栏(或其他东西)不是透明的,而是变成了类似于灰色的某种颜色,我还可以看到 3 个褪色的图标,分别是 2 个人,就像旧的 MSN 信使图标、聊天图标和滚轮设置图标,可能与工具栏一起提供。如果我将工具栏的颜色设置为其他颜色,则没有问题,它已设置为该颜色。
为什么工具栏背景不变为透明以便我可以看到下面的内容?
尝试删除主要线性布局或白色的背景。
我终于意识到工具栏确实变透明了,但问题是内容window在它下面,从我写的布局可以看出..内容window 在它下面,因为它在 LinearLayout
内。将 LinearLayout
更改为 FrameLayout
后,这意味着工具栏现在位于内容之上而不是内容之上,一切正常
我有一个带有工具栏和导航抽屉的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:background="@android:color/transparent"
android:fitsSystemWindows="true"
android:orientation="vertical"
tools:context="com.my.app.GUI.MainActivity">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/mainBackground"
android:contentInsetEnd="0dp"
android:contentInsetLeft="0dp"
android:contentInsetRight="0dp"
android:contentInsetStart="0dp"
app:contentInsetEnd="0dp"
app:contentInsetLeft="0dp"
app:contentInsetRight="0dp"
app:contentInsetStart="0dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent">
<FrameLayout
android:id="@+id/frameLayoutTitleBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:padding="10dp">
<ImageView
android:id="@+id/imageViewHamburger"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@drawable/icon_hamburger_menu"/>
<TextView
android:id="@+id/textViewToolbarTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:gravity="center"
android:text="TITLE"
android:textColor="@android:color/white"
android:textSize="@dimen/very_large_font_size"/>
</FrameLayout>
<ImageView
android:id="@+id/imageViewToolbarRightSide"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/frameLayoutTitleBar"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/frameLayoutTitleBar"
android:layout_marginRight="10dp"
android:visibility="invisible"
app:srcCompat="@drawable/icon_hamburger_menu"/>
<View
android:id="@+id/viewTitleUnderLine"
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_alignParentBottom="true"
android:background="@color/secondaryBackground"/>
</RelativeLayout>
</android.support.v7.widget.Toolbar>
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
</FrameLayout>
</LinearLayout>
此所有布局稍后将作为 include
添加到另一个布局,其中包括导航抽屉的布局。
在我的代码中,我设置了图像、字符串以及工具栏的背景。 背景设置如下:
public static void setTitleBarBackgroundColor(int color)
{
if(toolBar != null)
{
toolBar.setBackgroundColor(color);
}
}
...
MyToolBarClass.setTitleBarBackgroundColor(getResources().getColor(android.R.color.transparent));
调用它时,颜色确实发生了变化,但工具栏(或其他东西)不是透明的,而是变成了类似于灰色的某种颜色,我还可以看到 3 个褪色的图标,分别是 2 个人,就像旧的 MSN 信使图标、聊天图标和滚轮设置图标,可能与工具栏一起提供。如果我将工具栏的颜色设置为其他颜色,则没有问题,它已设置为该颜色。
为什么工具栏背景不变为透明以便我可以看到下面的内容?
尝试删除主要线性布局或白色的背景。
我终于意识到工具栏确实变透明了,但问题是内容window在它下面,从我写的布局可以看出..内容window 在它下面,因为它在 LinearLayout
内。将 LinearLayout
更改为 FrameLayout
后,这意味着工具栏现在位于内容之上而不是内容之上,一切正常