要解决Android FAB在具有导航组件的边缘到边缘xml布局中不遵循WindowInsets的问题,可以尝试以下解决方法:
ViewCompat.setOnApplyWindowInsetsListener(rootLayout, new OnApplyWindowInsetsListener() {
@Override
public WindowInsetsCompat onApplyWindowInsets(View v, WindowInsetsCompat insets) {
FloatingActionButton fab = findViewById(R.id.fab);
ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) fab.getLayoutParams();
lp.rightMargin += insets.getSystemWindowInsetRight(); // 适当调整边距以适应 WindowInsets
lp.bottomMargin += insets.getSystemWindowInsetBottom(); // 适当调整边距以适应 WindowInsets
fab.setLayoutParams(lp);
return insets;
}
});
注意:上述代码中的 rootLayout 是指布局文件中的根布局。请将其替换为相应的布局容器。
这些方法应该能够解决 Android FAB 在具有导航组件的边缘到边缘布局中不遵循 WindowInsets 的问题。