(侵权删)来源:https://www.cnblogs.com/loaderman/p/11051005.html
import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Rect;
import android.os.Build;
import android.util.AttributeSet;
import android.view.WindowInsets;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import androidx.appcompat.widget.LinearLayoutCompat;
@SuppressLint("ViewConstructor")
public class CustomLinearLayoutCompat extends LinearLayoutCompat {
public CustomLinearLayoutCompat(Context context) {
super(context);
}
public CustomLinearLayoutCompat(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public CustomLinearLayoutCompat(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@SuppressLint("ObsoleteSdkInt")
@Override
protected boolean fitSystemWindows(Rect insets) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
insets.left = 0;
insets.top = 0;
insets.right = 0;
}
return super.fitSystemWindows(insets);
}
@SuppressLint("ObsoleteSdkInt")
@RequiresApi(api = Build.VERSION_CODES.KITKAT_WATCH)
@Override
public WindowInsets onApplyWindowInsets(WindowInsets insets) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
return super.onApplyWindowInsets(insets.replaceSystemWindowInsets(0, 0, 0, insets.getSystemWindowInsetBottom()));
}
else {
return insets;
}
}
}
本文介绍了一个自定义的CustomLinearLayoutCompat类,该类继承自LinearLayoutCompat并重写了fitSystemWindows和onApplyWindowInsets方法,用于更好地处理系统窗口内边距,确保在不同Android版本上的一致显示效果。
3548

被折叠的 条评论
为什么被折叠?



