当MyFragment
出现在屏幕上时,我希望能够自动将光标聚焦到MyFragment
中的EditText
上。我尝试过EditText.requestFocus()
,但它并没有聚焦到EditText
上。我该怎么办?
当MyFragment
出现在屏幕上时,我希望能够自动将光标聚焦到MyFragment
中的EditText
上。我尝试过EditText.requestFocus()
,但它并没有聚焦到EditText
上。我该怎么办?
如果您的View
可以获得焦点,editText.requestFocus()
将把焦点放在它上面。但我猜想您希望在其获得焦点时显示软键盘。如果我的猜测正确,则以下代码可能适用于您。
editText.requestFocus();
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
这段代码来自于此帖子。 您还可以查看Android开发者文档了解详情。
请在您的XML文件中设置此项
android:focusable="true"
android:focusableInTouchMode="true"
你可以在onViewCreated程序中设置这个:editText.isFocusableInTouchMode();
editText.setFocusable(true);
EditText.isFocusableInTouchMode();
EditText.setFocusable(true);
EditText.requestFocus();
android:focusable="true"
android:focusableInTouchMode="true"
fun EditText.focus() {
text?.let { setSelection(it.length) }
postDelayed({
requestFocus()
val imm = context.getSystemService(Activity.INPUT_METHOD_SERVICE) as InputMethodManager
imm.showSoftInput(this, InputMethodManager.SHOW_IMPLICIT)
}, 200)
}
并在 onViewCreated
中调用它,应用于你的 EditText。