Open ghost opened 6 years ago
多谢@techGay的线索,省掉不少时间 🙏 如果不想改播放器的代码可以直接在hide后重新设置一下padding
/**
* 隐藏状态栏
* StatusBarUtil.hideFakeStatusBarView 会设置内边距
* @see https://github.com/laobie/StatusBarUtil/issues/166
*/
fun hideStatusBar() {
StatusBarUtil.hideFakeStatusBarView(this)
(findViewById(android.R.id.content) as? ViewGroup)?.setPadding(0, 0, 0, 0)
}
自己踩的坑,贴出来给需要的兄弟参考 一般配合BGASwipeBackLayout 我们会使用这个方法设置statusbar颜色
不全屏的时候没问题,但是全屏之后你会发现,什么鬼,上面居然有一条东东横在那,可是明明statusbar已经隐藏了,这东西是什么鬼,于是开始翻看issues,又发现了一个方法,于是尝试
看看hideFakeStatusBarView 做了什么
没啥毛病呀,可是发现这东西,依然存在,人家可以,为啥我的不可以???无奈只能查看源码,好在源码少,不复杂,于是乎看到了
问题就出在contentView.setPadding(0, statusBarHeight, 0, 0); 这里并不是像setColor(Activity activity, @ColorInt int color, @IntRange(from = 0, to = 255) int statusBarAlpha) 中decorView.addView(createStatusBarView(activity, color, statusBarAlpha));所以为什么我们的方法StatusBarUtil.hideFakeStatusBarView(this);木有效果。。。 解决办法: 先看我的视频全屏方式(仅供参考):
关键就在于viewGroup.setPadding(0, 0, 0, 0); 重新设置padding,当然旋转回来了别忘记重新设置statusbar,运行。。。完美了