Odak, dokunmanın yanı sıra bir şey (örneğin bir d-pad, klavye vb.) Kullanırken UI bileşenlerini seçmek içindir. Bazıları varsayılan olarak odaklanabilir olmasa da herhangi bir görünüm odak alabilir. (Bir görünümü odaklanabilir hale getirebilir setFocusable(true)
ve odaklanmaya zorlayabilirsiniz requestFocus()
.)
Ancak, dokunma modundayken odaklamanın devre dışı bırakıldığını unutmamak önemlidir . Dolayısıyla, parmaklarınızı kullanıyorsanız, odağı programlı olarak değiştirmek hiçbir şey yapmaz. Bunun istisnası, bir girdi düzenleyiciden girdi alan görünümler içindir. An EditText
böyle bir örnektir. Bu özel durum setFocusableInTouchMode(true)
için, yazılım klavyesinin girişin nereye gönderileceğini bilmesini sağlamak için kullanılır. An EditText
, varsayılan olarak bu ayara sahiptir. Yazılım klavyesi otomatik olarak açılacaktır.
Yazılım klavyesinin otomatik olarak açılmasını istemiyorsanız, @abeljus'un belirttiği gibi onu geçici olarak bastırabilirsiniz:
InputMethodManager inputManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
Bir kullanıcı tıkladığında, EditText
yine de klavyeyi göstermelidir.
Daha fazla okuma: