协调器布局和透明状态栏
Coordinator layout and transparent status bar
我目前正在尝试使用协调器布局来折叠图像 - 在具有透明状态栏的主题中 - 但是三个问题困扰着我:
- 当 Activity 启动时,状态栏后面不显示图像(如果我删除 coordinatorlayout,它会工作);
- 当我向上滚动时,我想将状态栏更改为纯色,但仍然显示了一部分图像;
- 添加 AppBarLayout 和 CollapsingToolbarLayout 后,图像底部 - 与状态栏的高度相同 - 被剪切;
图像保持在状态栏下方 - 即使它在主题中设置为透明
折叠后的状态栏 - 它应该有纯色
代码:
<?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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorPrimary"
android:orientation="vertical">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed"
app:statusBarScrim="@color/colorPrimary"
app:contentScrim="@color/colorPrimaryDark">
<RelativeLayout
android:id="@+id/cover_wrapper"
android:layout_width="match_parent"
android:layout_height="@dimen/rsc_character_details_cover_height">
<ImageView
android:id="@+id/cover"
android:layout_width="match_parent" android:layout_height="@dimen/rsc_character_details_cover_height"/>
</RelativeLayout>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/cover_wrapper"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="6">
...
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
这是我设置状态栏透明度的方式:
<item name="android:windowTranslucentStatus">true</item>
任何帮助将不胜感激。
非常感谢。
对于状态栏后面不显示图片被截断的问题,应该显示在状态栏区域的都应该有android:fitsSystemWindows="true"
。 IE。你的 cover_wrapper
和 cover
.
我目前正在尝试使用协调器布局来折叠图像 - 在具有透明状态栏的主题中 - 但是三个问题困扰着我:
- 当 Activity 启动时,状态栏后面不显示图像(如果我删除 coordinatorlayout,它会工作);
- 当我向上滚动时,我想将状态栏更改为纯色,但仍然显示了一部分图像;
- 添加 AppBarLayout 和 CollapsingToolbarLayout 后,图像底部 - 与状态栏的高度相同 - 被剪切;
代码:
<?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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorPrimary"
android:orientation="vertical">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed"
app:statusBarScrim="@color/colorPrimary"
app:contentScrim="@color/colorPrimaryDark">
<RelativeLayout
android:id="@+id/cover_wrapper"
android:layout_width="match_parent"
android:layout_height="@dimen/rsc_character_details_cover_height">
<ImageView
android:id="@+id/cover"
android:layout_width="match_parent" android:layout_height="@dimen/rsc_character_details_cover_height"/>
</RelativeLayout>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/cover_wrapper"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="6">
...
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
这是我设置状态栏透明度的方式:
<item name="android:windowTranslucentStatus">true</item>
任何帮助将不胜感激。 非常感谢。
对于状态栏后面不显示图片被截断的问题,应该显示在状态栏区域的都应该有android:fitsSystemWindows="true"
。 IE。你的 cover_wrapper
和 cover
.