在Android R中,WindowInsetListener在布局中使用时会使偏移量增加两倍。为了解决这个问题,需要在代码中使用以下方法来获得将偏移量倍增的正确值。
ViewCompat.setOnApplyWindowInsetsListener(view, new OnApplyWindowInsetsListener() {
@Override
public WindowInsetsCompat onApplyWindowInsets(View v, WindowInsetsCompat insets) {
int topInset = insets.getSystemWindowInsetTop() / 2;
int bottomInset = insets.getSystemWindowInsetBottom() / 2;
int leftInset = insets.getSystemWindowInsetLeft() / 2;
int rightInset = insets.getSystemWindowInsetRight() / 2;
return insets.inset(leftInset, topInset, rightInset, bottomInset);
}
});
通过使用fitsSystemWindows属性来设置偏移量,在代码中使用以上方法来获取正确的偏移量值。这将解决WindowInsetListener在Android R中倍增偏移量的问题。