ListView 中含有 EditText 导致焦点丢失的问题
2013-11-01 17:21
429 查看
ListView 中的 item 中有 EditText 时。
如果activity的输入法选项设置为 android:windowSoftInputMode="adjustResize"
当点击一个EditText弹出输入法时时,会导致界面layout变化,导致 listview 重新调用getView刷新界面,各个itemView的状态会被清除,导致当前点击的EditText的焦点丢失,导致无法输入。
解决方法: 记住当前hasFocus的Edit的position,在getView的时候重新设置focus。
如果activity的输入法选项设置为 android:windowSoftInputMode="adjustResize"
当点击一个EditText弹出输入法时时,会导致界面layout变化,导致 listview 重新调用getView刷新界面,各个itemView的状态会被清除,导致当前点击的EditText的焦点丢失,导致无法输入。
解决方法: 记住当前hasFocus的Edit的position,在getView的时候重新设置focus。
@Override public View getView(int position, View convertView, ViewGroup parent) { Log.e("ss", "getView:" + position); View v = null; ViewHolder vh = null; if (convertView != null) { v = convertView; vh = (ViewHolder) v.getTag(); } else { v = mInflater.inflate(R.layout.item, parent, false); vh = new ViewHolder(); vh.infoTxt = (TextView) v.findViewById(R.id.info_txt); vh.editTxt = (EditText) v.findViewById(R.id.edit_txt); vh.editTxt.setOnFocusChangeListener(mListener); v.setTag(vh); } vh.editTxt.setTag(position); vh.infoTxt.setText(position + ""); if (mFocusPosition == position) { vh.editTxt.requestFocus(); } else { vh.editTxt.clearFocus(); } return v; } int mFocusPosition = -1; OnFocusChangeListener mListener = new OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { int position = (Integer) v.getTag(); if (hasFocus) { mFocusPosition = position; } Log.e("test", "onFocusChange:" + position + " " + hasFocus); } };
相关文章推荐
- ListView中含有EditText时候--要命的焦点问题迎刃而解
- ListView中含有EditText抢占焦点问题终极解决方案
- 重绘导致的edittext丢失焦点问题
- ListView中含有EditText时候--要命的焦点问题迎刃而解
- android listview 每一项都是edittext 导致的坑爹问题 内容的保存和焦点,光标位置的设置
- ListView里面有EditText,弹出键盘后EditView立刻不能获取焦点的问题
- listview和edittext焦点问题
- Android开发之ListView+EditText-要命的焦点和软键盘问题解决办法
- listview中含有edittext 出现 点击两次才能弹出软件判断的问题
- 【Android】ListView中EditText焦点问题
- Android ListView/recyclerView条目中EditText容易失去焦点的问题和取出横向时上下滚动有阴影
- Android开发之ListView+EditText-要命的焦点问题终极解决方案
- ListView里面有EditTextView,解决弹出键盘后EditView不能获取焦点的问题
- ListView 与EditText共存的焦点问题
- ListView里面有EditTextView,解决弹出键盘后EditView不能获取焦点的问题
- ListView+EditText失去焦点和软键盘问题解决办法
- Android5.0 沉浸式效果导致Edittext获取焦点后画面不动的问题
- android listview 含有edittext 数据错乱问题
- android ListView嵌入EditText焦点和值错误问题
- Android开发之ListView+EditText-要命的焦点和软键盘问题解决办法