首页 > 解决方案 > 离开全屏后 Android 内容未调整大小

问题描述

我正在开发一个视频播放器,我可以让应用程序全屏显示就好了,但是当尝试返回到导航和状态栏可见时,内部内容不会调整大小。我已经尝试使用这里和这里的代码

这是正常的AppCompatActivity,使用Theme.AppCompat.NoActionBar,我试过弄乱主题,调用requestLayout()装饰视图,弄乱configChanges清单中的标志,都无济于事。

我还在我的另一个宠物项目中尝试了代码,并看到了相同的症状。不知道我错过了什么,但内部内容不会调整大小以考虑重新显示的状态和导航控件。

标签: androidandroid-layout

解决方案


我能够弄清楚,不确定是否有更清洁的方法,但我放置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 是否可见来处理布局。


推荐阅读