📌  相关文章
📜  如何阻止 EditText 在 Android 的 Activity 启动时获得焦点?

📅  最后修改于: 2022-05-13 01:58:44.949000             🧑  作者: Mango

如何阻止 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"

结论

这是解决这个模糊问题的所有可能方法,现在你终于可以摆脱那个讨厌的焦点,像以前一样继续你的项目。