我对Android相当陌生,我一直在尝试使用本指南中描述的边缘到边缘的内容,只是让它与一个在透明导航栏后面滚动的基本RecyclerView一起工作。按照指南的指示,我使用窗口内嵌来调整填充和防止重叠:
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.layout_root), (v, windowInsets) -> {
Insets insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars());
Log.d("DEBUG", "Insets: " + insets.toString());
v.setPadding(0, insets.top, 0, insets.bottom);
return WindowInsetsCompat.CONSUMED;
});在Android 10上,一切都运行得很好,但是在Android 11或12上测试时,顶部的嵌入式总是返回0。到目前为止,我已经在Android 11中发现了很多关于窗口嵌入的更改,但是我找不到与这个特定问题有关的任何东西。
发布于 2022-05-09 01:28:22
我也面临着同样的问题。它总是返回0。
我把我的问题修正如下:
int insetTypes = WindowInsetsCompat.Type.displayCutout() | WindowInsetsCompat.Type.systemBars();
Insets insets = windowInsets.getInsets(insetTypes);https://stackoverflow.com/questions/70759152
复制相似问题