如何阻止 EditText 在 Android 的 Activity 启动时获得焦点?
在处理 Android 项目时,您可能会遇到一个模糊错误,活动启动,然后 EditText 立即获得焦点并强制打开软键盘。好吧,这不是我们所期望的,让我们解决这个问题,并摆脱它!
方法 #1:从 EditText 中删除请求焦点
您可以强制覆盖 editText 的焦点并从 XML 本身中消除此问题。更改您的 editText 的 XML 块,如下所示:
//` `
`
方法#2:以编程方式移除焦点
也许您不想从 XML 中删除焦点,或者您可能正在使用 3rd 方库的文本,然后您可以通过Java文件以下列方式以编程方式更改焦点:
Java
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
方法 #3:使用 XML 标志
如果您只是使用较新版本的 Android Studio,您可以使用 XML 中的 focusable 属性简单地移除焦点,例如:
android:focusable="false"/>
方法 #4:使用虚拟 EditText
与上面提到的方法相比,此方法效率不高,因此在后一个数字上,这包括创建一个新的虚拟 editText,它将不会被使用并将被隐藏,以便它欺骗操作系统不创建任何字段获得焦点。
方法 #5:硬编码 Android Manifest
如果您无法通过上述任何可能的方法解决问题,则此方法可能是最后的手段,这只是指示 Android 清单在针对包含活动的特定问题启动活动时不启用软键盘。打开 Android.Manifest 文件并将下面的行添加到有问题的活动中:
android:windowSoftInputMode="stateAlwaysHidden"
结论
这是解决这个模糊问题的所有可能方法,现在你终于可以摆脱那个讨厌的焦点,像以前一样继续你的项目。