JmStefanAndroid / EasyBehavior

一个可以上拉下滑的Ui效果(4.0+)eg: A Behavior Sample

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

沉浸式怎么处理

KotlinLan opened this issue · comments

你好,当图1往上滑动的时候,顶部的状态栏直接就是黑色的了,请问这个应该怎么修改?
image
4.4以上可以实现沉浸式吗

状态栏部分的沉浸式使用了三方的工具com.jaeger.statusbarutil:library:1.4.0,上拉时demo里需要关闭沉浸式效果,就是这么设计的,如果你需要保持下拉状态的沉浸式,可以通过statusbarutil自行调整代码

如果有需要,请Reopen

沉浸式的朋友,解决方法:
注释两行代码
1.注释initStatus();
2.注释initListener()中的
StatusBarUtil.setTranslucentForImageView(mActivity, (int) (255f * percent), null);
======================具体原理,可以不看型===========================
我通过读源码看到有这么一个方法addTranslucentView,源码如下
/** * 添加半透明矩形条 * * @param activity 需要设置的 activity * @param statusBarAlpha 透明值 */ private static void addTranslucentView(Activity activity, @IntRange(from = 0, to = 255) int statusBarAlpha) { ViewGroup contentView = (ViewGroup) activity.findViewById(android.R.id.content); View fakeTranslucentView = contentView.findViewById(FAKE_TRANSLUCENT_VIEW_ID); if (fakeTranslucentView != null) { if (fakeTranslucentView.getVisibility() == View.GONE) { fakeTranslucentView.setVisibility(View.VISIBLE); } fakeTranslucentView.setBackgroundColor(Color.argb(statusBarAlpha, 0, 0, 0)); } else { contentView.addView(createTranslucentStatusBarView(activity, statusBarAlpha)); } }
然后,通过查找调用到这个方法的地方,发现在initListener()中有调用到。
运行后,发现toolbar不贴这顶部屏幕。
所以,再注释掉initStatus();即可(主要是要注释里面的setLayoutParams,但,注释initStatus();也可以)
然后再运行,发现完美适配沉浸式了。
结束