您的位置:首页 > 移动开发 > Android开发

android关于EditText获取焦点的一个问题

2017-09-15 15:24 309 查看

之前用EditText遇到好多关于焦点的问题,最近想到了一个问题,就记录下来,以后再慢慢添加。

1.页面刷新会让EditText失去焦点,比如设置某个控件显示隐藏,刷新adapter等等。我们可以延迟50ms给EditText重新设置焦点。

2.我们知道,focusableInTouchMode和focusable是用来获取焦点的,如果其他控件设置了这属性,那它就能抢EditText的焦点。我遇到过listView设置了这两个属性,结果刷新布局后软键盘输入法由中文变成英文的情况。那么去掉其他控件的这两个属性就好了。

3.适当的时候调用requestFocus或requestFocusInTouchMode可以主动获取焦点。

4.Activity进去时隐藏软键盘,可以直接在manifest里面放属性就可以了

android:windowSoftInputMode="stateHidden"


点击外面其他控件软键盘不消失,可以直接调用隐藏软键盘的方法来解决。贴一个方法。

protected void hideSoftKeyboard() {
if (getWindow().getAttributes().softInputMode != WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN) {
if (getCurrentFocus() != null)
inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(),
InputMethodManager.HIDE_NOT_ALWAYS);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android