Android 設定狀態列後adjustResize屬性無效
阿新 • • 發佈:2019-02-20
這兩天被這個問題搞得很焦灼,今天終於解決了,在這裡把自己解決的辦法分享一下;
這是之前碰到的問題
如截圖所示,輸入框被遮住了
之前試過AndroidBug5497Workaround這個類,但發現在有些手機上無法做到適配,於是又到處找,最後終於找到了一種方法。
首先在對應的Activity裡面設定
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);//根據輸入法調節view的移動
然後重寫根佈局
public class FullScreenLinearLayout extendsLinearLayout { private int[] mInsets = new int[4]; public FullScreenLinearLayout(Context context) { super(context); } public FullScreenLinearLayout(Context context, AttributeSet attrs) { super(context, attrs); } public final int[] getInsets() { return mInsets; } @Override protected final boolean fitSystemWindows(Rect insets) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH) { mInsets[0] = insets.left; mInsets[1] = insets.top; mInsets[2] = insets.right; return super.fitSystemWindows(insets); } else{ return super.fitSystemWindows(insets); } } }
只重寫了fitSystemWindows方法。
然後在根佈局裡面設定
android:fitsSystemWindows="true"這個問題到這裡就解決了。