Android取消EditText自动聚焦、自动弹出输入法的方法
16lz
2021-12-29
当跳转到带有EditText的界面后,App会自动弹出输入法,严重影响了用户体验。因此,我们有时候需要取消EditText的默认聚焦。
方法一:
在EditText的父控件中加上这两行代码:
android:focusable="true" android:focusableInTouchMode="true"
例如:
<?xml version="1.0" encoding="utf-8"?>//
方法二:
使用代码使外层组件获取焦点,代码如下:
View.setFocusable(true);View.setFocusableInTouchMode(true);View.requestFocus();//有时需要添加,谨慎起见建议全部都加
示例:
布局文件:<?xml version="1.0" encoding="utf-8"?> 代码:LinearLayout ll = findViewById(R.id.ll); ll.setFocusable(true); ll.setFocusableInTouchMode(true); ll.requestFocus();
方法三:
将该窗口下的输入法隐藏起来,代码如下(仅隐藏输入法,需要在setContentView()前调用):
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
示例:
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.getWindow() .setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); setContentView(R.layout.activity_method3); }
方法四:
在AndroidManifest相应的Activity中添加如下代码(仅隐藏输入法):
android:configChanges="keyboardHidden|orientation"android:windowSoftInputMode="adjustResize|stateHidden"
示例:
源代码下载:Github下载链接
更多相关文章
- Android实现页面跳转的几种方式(转贴)
- Android(安卓)getDimensionPixelSize, 代码中设置字体大小,读xml
- 如何在Android(安卓)Studio使用Java8 Lambda表达式
- 在PC端进行android截屏的多种方法
- 理解WebKit和Chromium: 调试Android系统上的Chromium
- Android(安卓)中自定义控件和属性(attr.xml,declare-styleable,T
- Android(安卓)中自定义View的应用 (自绘TextView) ---- 转
- Android(安卓)- 文本框的输入法控制和默认焦点设置
- 使用SourceInsight查看android中的native方法