透明的 AppBarLayout 和 CollapsingToolbarLayout
Transparent AppBarLayout and CollapsingToolbarLayout
我想实现以下布局:
- 地图作为基本布局
- 在 CollapsingToolbarLayout 中透明 window 以上
- 内容的 RecyclerView
我提供了一个示例来说明它应该是什么样子。
我一直在关注 Cheesesquare 中的 CollapsingToolbarLayout 和 AppBarLayout 实施的出色示例。我设法让内容与 CollapsingToolbarLayout 中的地图一起使用(在布局中注释掉 xml),但这不是想要的结果。
但是我没有找到任何解决方案/文档来使灰色框(见中间的内部图像)在初始位置是透明的。我希望它是透明的,以便看透地图。当用户向上滚动时,CollapsingToolbarLaoyut 应该完成它的工作并折叠透明 window 并显示工具栏。现在图像看起来只是白色或我给它的任何颜色。我已经尝试将颜色设置为透明,但没有达到预期的效果。
所以我的问题:如何在初始阶段将"CollapsingToolbarLayout"设置为透明(参见图片第1层灰色框)?
这是我的布局代码。 CollapsingToolbarLayout 效果很好,但我看不到下面的地图。如果可以实施就太好了。
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<!-- Layer 0 -->
<FrameLayout
android:id="@+id/overlayFragmentMap"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:elevation="0dip"
/>
<!-- Layer 1 -->
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="192dp"
android:fitsSystemWindows="true"
android:theme="@style/CustomActionBar">
<!--android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar-->
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorAccent"
app:expandedTitleMarginBottom="32dp"
app:expandedTitleMarginEnd="64dp"
app:expandedTitleMarginStart="48dp"
app:expandedTitleTextAppearance="@color/black"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<!-- Map view inside here works perfectly but is not
the deisired result -->
<!--
<FrameLayout
android:id="@+id/overlayFragmentMap"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:elevation="0dip"
app:layout_collapseMode="parallax"
/>
-->
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@drawable/transparent"
android:elevation="4dip"
app:layout_collapseMode="pin"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<!-- Fragment with recyclerview inside -->
<FrameLayout
android:id="@+id/overlayFragmentContent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:elevation="3dip"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
<android.support.design.widget.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dip"
android:clickable="true"
app:layout_anchor="@+id/appbar"
app:layout_anchorGravity="bottom|right|end" />
</android.support.design.widget.CoordinatorLayout>
How could I set the "CollapsingToolbarLayout" transparent in the
initial phase (see image Layer 1 grey box)?
尝试在您的 AppBarLayout
: android:background="@android:color/transparent"
中使用它
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="192dp"
android:background="@android:color/transparent"
android:fitsSystemWindows="true">
结果如下:
希望对您有所帮助。
我想实现以下布局:
- 地图作为基本布局
- 在 CollapsingToolbarLayout 中透明 window 以上
- 内容的 RecyclerView
我提供了一个示例来说明它应该是什么样子。
我一直在关注 Cheesesquare 中的 CollapsingToolbarLayout 和 AppBarLayout 实施的出色示例。我设法让内容与 CollapsingToolbarLayout 中的地图一起使用(在布局中注释掉 xml),但这不是想要的结果。
但是我没有找到任何解决方案/文档来使灰色框(见中间的内部图像)在初始位置是透明的。我希望它是透明的,以便看透地图。当用户向上滚动时,CollapsingToolbarLaoyut 应该完成它的工作并折叠透明 window 并显示工具栏。现在图像看起来只是白色或我给它的任何颜色。我已经尝试将颜色设置为透明,但没有达到预期的效果。
所以我的问题:如何在初始阶段将"CollapsingToolbarLayout"设置为透明(参见图片第1层灰色框)?
这是我的布局代码。 CollapsingToolbarLayout 效果很好,但我看不到下面的地图。如果可以实施就太好了。
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<!-- Layer 0 -->
<FrameLayout
android:id="@+id/overlayFragmentMap"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:elevation="0dip"
/>
<!-- Layer 1 -->
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="192dp"
android:fitsSystemWindows="true"
android:theme="@style/CustomActionBar">
<!--android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar-->
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorAccent"
app:expandedTitleMarginBottom="32dp"
app:expandedTitleMarginEnd="64dp"
app:expandedTitleMarginStart="48dp"
app:expandedTitleTextAppearance="@color/black"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<!-- Map view inside here works perfectly but is not
the deisired result -->
<!--
<FrameLayout
android:id="@+id/overlayFragmentMap"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:elevation="0dip"
app:layout_collapseMode="parallax"
/>
-->
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@drawable/transparent"
android:elevation="4dip"
app:layout_collapseMode="pin"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<!-- Fragment with recyclerview inside -->
<FrameLayout
android:id="@+id/overlayFragmentContent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:elevation="3dip"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
<android.support.design.widget.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dip"
android:clickable="true"
app:layout_anchor="@+id/appbar"
app:layout_anchorGravity="bottom|right|end" />
</android.support.design.widget.CoordinatorLayout>
How could I set the "CollapsingToolbarLayout" transparent in the initial phase (see image Layer 1 grey box)?
尝试在您的 AppBarLayout
: android:background="@android:color/transparent"
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="192dp"
android:background="@android:color/transparent"
android:fitsSystemWindows="true">
结果如下:
希望对您有所帮助。