我创建了一个ToolBar
我将其设置为ActionBar
并且我将其透明,我的问题是我希望它覆盖其余内容,现在它的行为就像一个普通{ {1}}我的ActionBar
“停在”下方。如何使LinearLayout
覆盖我的布局并将该布局填满整个屏幕?
原始ToolBar
的样式只是:
ActionBar
我的<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowActionBarOverlay">true</item>
</style>
:
ToolBar
和我的<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
app:theme="@style/ThemeOverlay.AppCompat.ActionBar"
android:layout_width="match_parent"
android:layout_height="200dp"
android:minHeight="?attr/actionBarSize"
android:background="@android:color/transparent"/>
声明:
ToolBar
我觉得我错过了一些非常简单的东西,但在搜索后我找不到我正在寻找的解决方案。任何帮助,将不胜感激!
编辑: 这是我的完整XML主要布局:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setBackgroundResource(Color.TRANSPARENT);
setSupportActionBar(toolbar);
答案 0 :(得分:22)
你走在正确的轨道上。最简单的方法是使用FrameLayout
,其中内容ViewGroup
将match_parent
,Toolbar
位于此ViewGroup
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<!-- This can be any child. For sample purposes I assume this layout contains fragments -->
<LinearLayout
android:background="?attr/colorPrimary"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/fragment_container"
android:orientation="horizontal"/>
<android.support.v7.widget.Toolbar
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
app:theme="@style/ThemeOverlay.AppCompat.ActionBar"
android:layout_width="match_parent"
android:layout_height="200dp"
android:minHeight="?attr/actionBarSize"
android:background="@android:color/transparent">
</android.support.v7.widget.Toolbar>
</FrameLayout>
答案 1 :(得分:7)
经过一些运动后,我才能实现。希望它能帮助别人。在这里,我没有为 appbarlayout
设置提升 <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:background="@drawable/background_gradiant"
android:fitsSystemWindows="true"
tools:context=".activity.AddMembersActivity">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
app:elevation="0dp">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize" />
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_add_member" />
</android.support.design.widget.CoordinatorLayout>
答案 2 :(得分:3)
您应该在AppBarLayout
而不是Toolbar
上设置透明度,如果您希望覆盖内容,请移除app:layout_behavior
。
答案 3 :(得分:2)
在xml中,布局的顺序决定了“深度”。通过将工具栏移动到其他元素下方,它将覆盖它们。
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- Main layout -->
<FrameLayout
android:id="@+id/main_fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
app:theme="@style/ThemeOverlay.AppCompat.ActionBar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@android:color/transparent"/>
<!-- Nav drawer -->
<fragment
android:id="@+id/fragment_drawer"
android:name="rsay.android.scrollbanner.NavigationDrawerFragment"
android:layout_width="@dimen/navigation_drawer_width"
android:layout_height="match_parent"
android:layout_gravity="left|start" />
</android.support.v4.widget.DrawerLayout>
答案 4 :(得分:2)
:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
...
</style>
<style name="ActionBar.SemiTransp" parent="Base.Widget.AppCompat.ActionBar">
<item name="displayOptions">showHome|showTitle</item>
<item name="background">@drawable/gray_to_transp</item>
</style>
<style name="AppTheme.SemiTranspActionBar" parent="@style/AppTheme">
<item name="actionBarStyle">@style/ActionBar.SemiTransp</item>
<item name="windowActionBarOverlay">true</item>
</style>
并在清单中:
<activity
android:name=".MainActivity"
android:theme="@style/AppTheme.SemiTranspActionBar">
答案 5 :(得分:1)
CollapsingToolbar
默认提供叠加效果:
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/transparent">
<android.support.v7.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="?actionBarSize"/>
</android.support.design.widget.AppBarLayout>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.CoordinatorLayout>
答案 6 :(得分:0)
也许这可以帮助你,Ryan。
toolbar.getBackground().setAlpha(0);
答案 7 :(得分:0)
您可以使用下面的CoordinatorLayout
<android.support.design.widget.CoordinatorLayout
android:id="@+id/coordinatorLayout"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.epbit.itattooz.MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize"
android:background="?attr/colorPrimary"
android:minHeight="?android:attr/actionBarSize"
android:theme="@style/ThemeOverlay.AppCompat.Dark"
android:titleTextAppearance="@style/ToolbarTitle"/>
<FrameLayout
android:id="@+id/containerView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
</android.support.design.widget.CoordinatorLayout>
其中frameLayout用于已使用的片段。