如果存在缺口,我需要修改应用程序的工具栏。现在,该缺口在工具栏中隐藏了一部分内容。
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP || Build.VERSION.SDK_INT == Build.VERSION_CODES.M) {
setTheme(R.style.AppTheme_NoActionBarHello);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
SystemBarTintManager tintManager = new SystemBarTintManager(this);
tintManager.setStatusBarTintEnabled(true);
tintManager.setTintColor(ContextCompat.getColor(this, R.color.white));
} else initStatusBar();
initStatusBar方法
private void initStatusBar() {
Window window = getWindow();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT && Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
SystemBarTintManager tintManager = new SystemBarTintManager(this);
tintManager.setStatusBarTintEnabled(true);
tintManager.setTintColor(ContextCompat.getColor(this, R.color.white));
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
Window w = getWindow(); // in Activity's onCreate() for instance
w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
}
}
我的应用程序中没有任何通知栏。工具栏本身以白色覆盖所有区域,以实现使用上述代码保持兼容。 但是,notch作为它的新功能带来了一些问题。
摩托罗拉One Power目前存在问题。
帮助表示赞赏。让我知道您是否还需要其他任何东西。 谢谢
答案 0 :(得分:0)
答案 1 :(得分:0)
对于仍在搜索中并且需要摆脱该缺憾的人
Android开发人员在构建 Android Pie 时确实考虑了缺口设计。
但是也许移动制造商不愿意等到 Pie 发布,所以他们也将缺口设计也提供给 Oreo 设备。并使我们陷入困境。
无论如何,现在能够处理槽口设计,但仅适用于Pie
个设备。为此,我们只需要在styles.xml
中添加一行即可。
<item name="android:windowLayoutInDisplayCutoutMode"> never </item>
在values-v28
目录中创建一个新的res
文件夹,并将默认的styles.xml
文件复制到其中,然后在现有主题的上方添加一行。
值default
,shortEdges
,never
的工作方式如下。
never
的值可确保应用程序的窗口始终以横向和纵向模式绘制在凹口下方,并且会受到信箱打折的影响,并使凹口两侧的区域完全变黑。
shortEdges
值使您的应用程序窗口在凹口的两侧绘制,从而使应用程序更加沉浸在全屏模式中。它留下了无法使用的缺口区域。没有屏幕的房地产浪费!这在横向和纵向模式下均可完美运行。
默认情况下,default
值是选中的,它使状态栏的大小调整为凹口的高度,并在纵向和横向模式下都导致装箱。