他妈的,随便百度了两下,就找到解决方法了
现在三点了,距离六点下班还有三小时,再学一小时吧,
一小时安卓,一小时juc,一小时看小说,
草,
老子我真草
视频是旧的,哪哪都不一样,安卓迭代太快了,没人搞教程视频,
EdgeToEdge.enable(this);
EdgeToEdge.enable(this);
这行代码实际上并不是 Android SDK 中的标准方法。它可能来自一个第三方库或工具类,用于启用 Edge-to-Edge 模式。这种模式的目的是让应用的界面内容能够延伸到屏幕的边缘,避免被状态栏和导航栏等系统元素遮挡。
在 Android 11 及更高版本中,系统提供了类似的功能,可以通过 WindowInsets
来控制状态栏、导航栏等的内外边距,让内容更好地适配不同的屏幕区域。虽然 EdgeToEdge.enable()
不是标准 Android API 中的一部分,但从你的代码来看,它可能是用来简化或封装这些操作的工具。
Android 官方的类似操作:
如果你希望实现类似的功能(启用 Edge-to-Edge 模式),你可以使用 WindowInsets
API 来确保你的应用内容延伸到屏幕的边缘并不被系统栏遮挡。以下是如何在 Android 11 及以上版本启用这种模式的标准方法:
// 在 Activity 的 onCreate 方法中添加:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
getWindow().setDecorFitsSystemWindows(false);
}
解释:
getWindow().setDecorFitsSystemWindows(false)
使得应用的内容区域不再受到系统状态栏和导航栏的限制,允许应用的 UI 扩展到屏幕的边缘。- 这相当于启用了 Edge-to-Edge 模式。
对比:
EdgeToEdge.enable(this)
可能是一个封装了类似操作的工具或库方法,它的作用和上述代码类似——简化了对系统窗体(包括状态栏和导航栏)适配的处理。
如何处理系统栏的 Insets:
在启用 Edge-to-Edge 模式后,通常你还需要考虑如何处理系统栏的 Insets,以防止 UI 内容被遮挡。可以使用 WindowInsets
来获取系统栏的内边距,并相应地调整视图布局。
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
总结:
EdgeToEdge.enable(this)
可能是一个第三方库或自定义工具的函数,它用于启用 Edge-to-Edge 显示模式。你可以使用 getWindow().setDecorFitsSystemWindows(false)
来实现相同的效果。如果你使用的是较新的 Android 版本(Android 11 及以上),这两种方法应该可以让你的应用界面延伸到屏幕的边缘,并通过 WindowInsets
来处理状态栏和导航栏的遮挡问题。