1. 程式人生 > >Android 設定狀態列後adjustResize屬性無效

Android 設定狀態列後adjustResize屬性無效

這兩天被這個問題搞得很焦灼,今天終於解決了,在這裡把自己解決的辦法分享一下;

這是之前碰到的問題



如截圖所示,輸入框被遮住了

之前試過AndroidBug5497Workaround這個類,但發現在有些手機上無法做到適配,於是又到處找,最後終於找到了一種方法。

首先在對應的Activity裡面設定

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
//根據輸入法調節view的移動

然後重寫根佈局

public class FullScreenLinearLayout extends 
LinearLayout { 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"
這個問題到這裡就解決了。