標籤:keyword window 方式 導致 inpu ack rac resize 相關
要想實現這樣的軟鍵盤出現的時候會自己主動把輸入框的布局頂上去的效果,須要設定IME的屬性,有下面兩種設定方式:
一、在java代碼中設定例如以下: getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE| WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); 二、在androidmanifest.xml中設定與其相應的activity的屬性例如以下: android:windowSoftInputMode="adjustResize"
android:windowSoftInputMode = "adjustResize" ,軟鍵盤彈出時。要對主表單布局又一次進行布局。並調用onSizeChanged方法,
切記一點當我們設定為“adjustResize”時。我們的介面不要設定為全螢幕模式,否則設定了這個屬性也不會有什麼效果。而當我們設定
android: windowSoftInputMode = "adjustPan"時,主表單就不會調用onSizeChanged方法。介面的一部分就會被軟鍵盤覆蓋住。就
不會被擠到軟鍵盤之上了。
正常情況下,設定了該屬性之後,軟鍵盤在彈出時。輸入框便不會被遮擋。
可是該屬性在有些情況下是不生效的,眼下我所知的是下面兩種情況:
一、 當前activity被設定了全屏屬性。即 android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" 二、webview的相關布局被固定了高度,這裡也分為兩種情況: 1.根布局固定了高度,這裡的根布局是webview所在的Activity的最外層布局; 2.根布局未固定高度,可是根布局是FrameLayout布局。而webview或者其父控制項被固定了高度。
以上的這兩種固定的高度都會導致軟鍵盤遮擋輸入框的問題。需格外留意。
ps:固定了高度。是指layout_height屬性被賦予了詳細多少dp或px。
Android WebView中軟鍵盤會遮擋輸入框相關問題