折叠时透明的StatusBar [英] Transparent StatusBar when collapsed
本文介绍了折叠时透明的StatusBar的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有三个工作状态栏.但是,当CollapsingToolbar
折叠时,状态栏将保持透明.
如果折叠,我希望状态栏具有PrimaryDark
颜色.
I have three working status bars. But when the CollapsingToolbar
is collapsed, a status bar remains transparent.
I want the status bar to have the PrimaryDark
color if collapsed.
如何检测状态栏是否合拢并删除透明度?
How do I detect if the status bar is collapsed and remove the transparency?
打印-展开:
打印-折叠:
XML代码:
<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar"
android:layout_width="match_parent"
android:layout_height="@dimen/app_bar_height"
android:fitsSystemWindows="true"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
>
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:contentScrim="#f15b6e"
app:expandedTitleGravity="bottom"
android:background="@android:color/white"
app:expandedTitleMarginBottom="170dp"
app:expandedTitleMarginStart="10dp"
app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="225dp"
android:fitsSystemWindows="true">
<ImageView
android:id="@+id/main.backdrop"
android:layout_width="match_parent"
android:layout_height="@dimen/nav_header_height"
android:src="@drawable/hair"
app:layout_collapseMode="parallax"
android:adjustViewBounds="true"
android:fitsSystemWindows="true"
android:cropToPadding="false"
android:scaleType="fitXY"
/>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="225dp"
android:background="@drawable/gradient_bg">
</FrameLayout>
推荐答案
尝试一下
AppBarLayout appBarLayout = (AppBarLayout) findViewById(R.id.app_bar_layout_edit_profile);
appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
boolean isShow = false;
int scrollRange = -1;
@Override
public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
if (scrollRange == -1) {
scrollRange = appBarLayout.getTotalScrollRange();
}
if (scrollRange + verticalOffset == 0) {
Window window = activity.getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.setStatusBarColor(activity.getResources().getColor(R.color.primary_color));
isShow = true;
} else if (isShow) {
collapsingToolbarLayout.setTitle(" ");
isShow = false;
Window w =PerfilEmpresaActivity.this.getWindow();
w.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}
}
});
这篇关于折叠时透明的StatusBar的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文