首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android 隱藏 EditText 焦點與鍵盤:WindowSoftInputMode 與 InputMethodManager

     編輯:程式設計綜合問答

Manifest 設置 (Activity 級別)


<activity
    android:name=".MainActivity"
    android:windowSoftInputMode="stateAlwaysHidden|adjustResize" />
  • stateAlwaysHidden:Activity 創建時自動隱藏鍵盤。
  • adjustResize:鍵盤彈出時壓縮佈局,避免遮擋輸入框。

代碼動態隱藏


// 隱藏鍵盤
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);

// 移除焦點
editText.clearFocus();
// 或設置其他視圖可聚焦
otherView.requestFocus();

佈局 XML 防止自動彈出


<LinearLayout
    android:focusable="true"
    android:focusableInTouchMode="true"
    ...>
    <EditText ... />
</LinearLayout>

父佈局設置可聚焦,Activity 啟動時焦點落在父佈局而非 EditText。

現代封裝


fun Activity.hideKeyboard() {
    currentFocus?.let { view ->
        val imm = getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
        imm.hideSoftInputFromWindow(view.windowToken, 0)
    }
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved