6 回答

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊
試試這個(gè):
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超9個(gè)贊
要捕獲鍵盤(pán)的打開(kāi)/關(guān)閉事件,請(qǐng)使用以下代碼:
//...
private int layoutSize = 0;
private boolean isKeyboardVisible = false;
//...
@Override
public void onCreate(Bundle savedInstanceState) {
setKeyboardOpenListener();
}
//...
private void setKeyboardOpenListener() {
View activityRootView = findViewById(android.R.id.content);
activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(() -> {
if (activityRootView.getHeight() + Util.getStatusBarHeight(this) >= layoutSize) {
layoutSize = activityRootView.getHeight();
if (isKeyboardVisible) {
isKeyboardVisible = false;
onKeyboardClose();
}
} else {
if (!isKeyboardVisible) {
isKeyboardVisible = true;
onKeyboardOpen();
}
}
});
}
//...
public static int getStatusBarHeight(Context context) {
int result = 0;
int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");
if (resourceId > 0) {
result = context.getResources().getDimensionPixelSize(resourceId);
}
return result;
}

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超13個(gè)贊
您可以簡(jiǎn)單地使用此代碼,您的重點(diǎn)將會(huì)消失
editText.clearFocus();

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超1個(gè)贊
最近我用一個(gè)好的庫(kù)解決了這個(gè)問(wèn)題。它處理鍵盤(pán)可見(jiàn)性事件。
將其添加到您的應(yīng)用程序級(jí)Gradle文件。
dependencies {implementation'net.yslibrary.keyboardvisibilityevent:keyboardvisibilityevent:2.3.0'}
啟用鍵盤(pán)事件:
KeyboardVisibilityEvent.setEventListener( getActivity(), new KeyboardVisibilityEventListener() { @Override public void onVisibilityChanged(boolean isOpen) { if (isOpen) //Keyboard is showing. else yourEditText.clearFocus() yourEditText.setCursorVisible(false) //Only if the cursor keeps blinking else no need use it. //Keyboard is now closed. } });
遺憾的是,沒(méi)有“正確”的方法來(lái)處理鍵盤(pán)可見(jiàn)性事件。你得到的只是黑客來(lái)檢測(cè)它。

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超8個(gè)贊
使用editText.clearFocus()和editText.setCursorVisible(false)兩種方法,它可能會(huì)幫助你。
添加回答
舉報(bào)