我是Android開發新手。我的要求是當我點擊EditText小部件的外部時,我想隱藏android虛擬鍵盤。請幫忙。如何通過單擊EditText的外部來隱藏虛擬鍵盤?
回答
要隱藏你可以執行以下代碼的虛擬鍵盤:
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
簡單地把這些代碼的OnTouchListener
的onTouchDown()
方法是聯繫在一起的父佈局內。
這包裝在重寫的dispatchTouchEvent()中,正如Ram在其他答案中所建議的那樣效果很好。 – miek
雅它會關閉,但如果你點擊第二個edittext(如果可用)它不會得到焦點。鍵盤不會打開。請給出另一個答案。我嘗試了很多形式的stackoverflow。 – user3546693
只要檢查一下。
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
View view = getCurrentFocus();
boolean ret = super.dispatchTouchEvent(event);
if (view instanceof EditText) {
View w = getCurrentFocus();
int scrcoords[] = new int[2];
w.getLocationOnScreen(scrcoords);
float x = event.getRawX() + w.getLeft() - scrcoords[0];
float y = event.getRawY() + w.getTop() - scrcoords[1];
if (event.getAction() == MotionEvent.ACTION_UP
&& (x < w.getLeft() || x >= w.getRight()
|| y < w.getTop() || y > w.getBottom())) {
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(getWindow().getCurrentFocus().getWindowToken(), 0);
}
}
return ret;
}
重寫此方法,你必須編輯文本在您的活動..
似乎沒有任何座標檢查就可以正常工作。 – miek
@miek如果你刪除了座標檢查,那麼鍵盤在下次點擊EditText時不會顯示。 –
- 1. Android,虛擬鍵盤隱藏了EditText
- 2. 如何在editText外部點擊時隱藏鍵盤?
- 3. 隱藏虛擬鍵盤
- 4. 如何隱藏虛擬鍵盤
- 5. S60模擬器隱藏虛擬鍵盤
- 6. 通過單擊使用Ionic的按鈕來隱藏鍵盤ios
- 7. 單擊按鈕時隱藏虛擬鍵盤
- 8. 安卓:隱藏虛擬鍵盤時的EditText無法點擊,而不是啓用
- 9. 通過虛擬鍵盤避免隱藏控件
- 10. EditText隱藏在鍵盤上時點擊
- 11. 在點擊鍵盤(虛擬鍵盤)時替換editText的文本
- 12. 軟鍵盤隱藏的EditText
- 13. 在android中隱藏虛擬鍵盤?
- 14. 隱藏虛擬鍵盤總是
- 15. 從Qt隱藏密鑰虛擬鍵盤
- 16. 如何隱藏EditText上的軟鍵盤
- 17. Android - 鍵盤隱藏editText
- 18. 如何通過點擊外部來隱藏或關閉div框?
- 19. 不要隱藏虛擬鍵盤和jquery點擊
- 20. 虛擬鍵盤隱藏字段/文本域/ CONTENTEDITABLE(下面隱藏鍵盤)
- 21. 在加載片段時隱藏軟鍵盤或虛擬鍵盤
- 22. 如何顯示虛擬鍵盤隱藏的文本字段?
- 23. 當隱藏軟鍵盤時隱藏光標來自editText
- 24. 頂部的虛擬鍵盤
- 25. 如何在軟鍵盤顯示時隱藏EditText軟鍵盤?
- 26. 如何隱藏虛擬鍵盤觸摸旋鈕
- 27. 如何顯示和隱藏虛擬鍵盤(android)
- 28. 當顯示虛擬鍵盤和涉及SurfaceView時,Android的EditText被隱藏
- 29. 如何在Xamarin Android中隱藏鍵盤後單擊外部編輯文字
- 30. 在EditText上處理虛擬鍵盤
下面的一些偉大的答案。請記住,對於android用戶來說,點擊後退或完成按鈕來關閉鍵盤是正常的,而不是像在iPhone上那樣觸摸編輯文本的外部。 – sgarman
當我按下後退按鈕時,應用程序將被關閉 – androider
通常,當鍵盤打開時,我想離開應用程序,我希望按下一次以關閉鍵盤,然後再返回以保留當前可見活動。如果這是堆棧中的最後一項活動,那麼我預計會「退出」應用程序。 – sgarman