android - 离开全屏后 Android 内容未调整大小
问题描述
我正在开发一个视频播放器,我可以让应用程序全屏显示就好了,但是当尝试返回到导航和状态栏可见时,内部内容不会调整大小。我已经尝试使用这里和这里的代码。
这是正常的AppCompatActivity
,使用Theme.AppCompat.NoActionBar
,我试过弄乱主题,调用requestLayout()
装饰视图,弄乱configChanges
清单中的标志,都无济于事。
我还在我的另一个宠物项目中尝试了代码,并看到了相同的症状。不知道我错过了什么,但内部内容不会调整大小以考虑重新显示的状态和导航控件。
解决方案
我能够弄清楚,不确定是否有更清洁的方法,但我放置fitsSystemWindows
了 ViewPlayer 布局并在我的活动中使用了这个:
ViewCompat.setOnApplyWindowInsetsListener(playerView, (view, insets) -> {
WindowInsetsCompat windowInsets = insets;
int systemUiVisibility = getWindow().getDecorView().getSystemUiVisibility();
if (systemUiVisible(systemUiVisibility)) {
ViewCompat.onApplyWindowInsets(view, windowInsets);
} else {
windowInsets = insets.consumeSystemWindowInsets();
ViewCompat.onApplyWindowInsets(view, windowInsets);
}
return windowInsets;
});
它根据 systemUI 是否可见来处理布局。
推荐阅读
- vba - 删除某些时间 VBA
- node.js - 在 Node.js 中将图像转换为 Uint8Array
- javascript - 将文字对象设置为组件的 Input 属性作为已知对象类
- postgresql - 是否可以使用 PostgreSQL 的事件触发器针对一组特定的表捕获 DDL 事件?
- android - Android Jetpack Navigation 如何处理 Toolbar 和 BottomNavBar 内容
- c# - 用设计模式替换开关
- php - 通过 ACF 在悬停时添加和删除默认和悬停背景图像
- rest - 如何设计一个宁静的登录网址?
- javascript - 角度 2,在 ng build --prod 之后,ui-router 停止工作
- ios - 使用 SWRevealViewController 在一个 VC 中停用右切换