EditText和軟鍵盤的曖昧

2021-07-29 07:46:03 字數 1757 閱讀 8378

當進入有edittext的頁面中,預設edittext會獲取焦點,此時可能就會有需求提出,請在進入頁面時,彈出軟鍵盤。關於這個問題,實現方法有很多,簡直就是條條大路通羅馬。借本文梳理下edittext和軟體盤的設定的知識點。

1、對於上述的需求曲線解決辦法(糊弄測試人員)。在進入頁面中不讓edittext獲取到焦點,只有在觸控輸入框時獲取到焦點後,才彈出軟鍵盤。實現原理是讓edittext的父布局獲取到焦點。xml**如下設定:

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:focusable="true"

android:focusableintouchmode="true"

android:orientation="vertical">

android:id="@+id/edt"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:hint="please input " />

linearlayout>

2、實現上述需求的最便捷的兩種方法。在清單檔案中進行如下設定

android:name=".mainactivity"

android:windowsoftinputmode="adjustresize"

>

activity>

或者

android:name=".mainactivity"

android:windowsoftinputmode="adjustpan|statealwaysvisible"

>

activity>

adjustresize 屬性設定後軟鍵盤會將整體的布局向上推,不會讓其遮擋布局底部的控制項,adjustpan屬性則不會。

3、在**中實現上述需求。

getwindow().setsoftinputmode(windowmanager.layoutparams

.soft_input_state_always_hidden | windowmanager.layoutparams

.soft_input_adjust_nothing);

new handler(getmainlooper()).postdelayed(new runnable()

}, 200);

4、最後獻上軟鍵盤的隱藏和顯示的兩種方法,有助你在**中靈活的設定來應對各種需求。

inputmethodmanager inputmethodmanager = (inputmethodmanager) getsystemservice(

context.input_method_service);

inputmethodmanager.showsoftinput(edt, inputmethodmanager.show_forced);//edt為edittext控制項

inputmethodmanager imm = (inputmethodmanager) getsystemservice(input_method_service);

imm.hidesoftinputfromwindow(edt.getwindowtoken(), 0);//edt為edittext控制項

EditText和軟鍵盤

editext獲取焦點並自動彈出輸入鍵盤,如下 edittext edittext.setfocusable true edittext.setfocusableintouchmode true edittext.requestfocus inputmethodmanager inputmanage...

edittext不彈出軟鍵盤

在網上搜了一下,測試結果如下 僅供參考 android edittext不彈出軟鍵盤方法一 此方法會自動換行,但是會彈出軟鍵盤 在androidmainfest.xml中選擇哪個activity,設定windowsoftinputmode屬性為adjustunspecified statehidde...

EditText游標控制和軟鍵盤隱藏

edittext android id id vercodeedit android cursorvisible false 布局屬性 直接可以設定游標是否顯示 false為隱藏 true為顯示vercodeedit.setontouchlistener new view.ontouchlisten...