-
Notifications
You must be signed in to change notification settings - Fork 1.9k
questions
gyf-dev edited this page Sep 5, 2019
·
3 revisions
答:但凡当前界面使用了fitsSystemWindow相关的属性或者方法为true都没法让顶部图片沉浸,所以你就要检查你的代码了,然后删除,比如:
- ①检查你是否使用了ImmersionBar的fitsSystemWindow(true)方法;
- ②检查你的代码中是否调用了view的setFitsSystemWindow(true)方法;
- ③检查你的布局xml里是否使用了
android:fitsSystemWindows="true"
属性; - ④检查你的style文件里是否使用了
<item name="android:fitsSystemWindows">true</item>
属性。
答:①immersionbar-components:作用是加快你在Fragment里实现沉浸式。如果你的Fragment是以show/hide或者结合viewpager一起使用的,并且界面之间沉浸式不相同,而且又想在Fragment里使用沉浸式代码的话,因为受到Fragment生命周期的影响,必须要在Fragment里做一些相应的出来,这样才可以正常使用沉浸式。比如对于show/hide方式来说,你必须要在onHiddenChanged方法里做一些沉浸式处理;对于结合viewpager来说,就必须要在setUserVisibleHint方法里做一些处理,而immersionbar-components里的Fragment相关的类就已经做好了这方面的处理,所以就可以在initImmersionBar方法里快速实现不同样式的沉浸式了。 ②immersionbar-ktx:kotlin语言的一些扩展方法,让你在kotlin使用起来更方便,比如java里的
ImmersionBar.with(this).init();
在kotlin的写法就是
immersionBar()
再比如java里的
ImmersionBar.with(this).statusBarColor(R.color.colorPrimary).init();
在kotlin的写法就是
immersionBar {
statusBarColor(R.color.colorPrimary)
}
除此之外还有一些其他静态方法的简写,具体可以参考这个类KotlinActivity的演示