解决ListView和 EditText焦点和软键盘问题
2017-02-21 14:59
387 查看
ListView是常用的列表控件,但有时我们会在Item中嵌套EditText控件的使用,这时就会出现列表无法滑动等问题。
我需要在自定义的Adapter文件中定义一个属性记录当前获取焦点Edittext所在的position,
然后在重写的 getView 中对Edittext的touch事件进行判断。
这样,我们就能正常的完成两个控件的嵌套使用了。
这样,我们就能正常的完成两个控件的嵌套使用了。
我需要在自定义的Adapter文件中定义一个属性记录当前获取焦点Edittext所在的position,
private int mEditTextIndex = -1;
然后在重写的 getView 中对Edittext的touch事件进行判断。
holder.mEdittext.setTag(position); //解决ListView和 EditText焦点和软键盘问题 holder.mEdittext.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View view, MotionEvent event) { //解决ListView中嵌套的EditText不能滚动的问题 view.getParent().requestDisallowInterceptTouchEvent(true); // 在TOUCH的UP事件中,要保存当前的行下标,因为弹出软键盘后,整个画面会被重画 // 在getView方法的最后,要根据index和当前的行下标手动为EditText设置焦点 if (event.getAction() == MotionEvent.ACTION_UP) { mEditTextIndex = (Integer) view.getTag(); view.getParent().requestDisallowInterceptTouchEvent(false); } return false; } }); holder.mEdittext.clearFocus(); if(mEditTextIndex != -1 && mEditTextIndex == position) { // 如果当前的行下标和点击事件中保存的index一致,手动为EditText设置焦点。 holder.mEdittext.requestFocus(); holder.mEdittext.setSelection(holder.mEdittext.getText().length()); }
这样,我们就能正常的完成两个控件的嵌套使用了。
这样,我们就能正常的完成两个控件的嵌套使用了。
相关文章推荐
- Android开发之ListView+EditText-要命的焦点和软键盘问题解决办法
- ListView里面有EditTextView,解决弹出键盘后EditView不能获取焦点的问题
- Android开发之ListView+EditText-要命的焦点和软键盘问题解决办法
- 【转】Android开发之ListView+EditText-要命的焦点和软键盘问题解决办法
- ListView里面有EditTextView,解决弹出键盘后EditView不能获取焦点的问题
- Android开发之ListView+EditText-要命的焦点和软键盘问题解决办法
- ListView里面有EditTextView,解决弹出键盘后EditView不能获取焦点的问题
- EditText焦点问题 Android开发之ListView+EditText-要命的焦点和软键盘问题解决办法
- ListView+EditText失去焦点和软键盘问题解决办法
- listview中的item和edittext强焦点问题怎么解决
- ListView里面有EditText,弹出键盘后EditView立刻不能获取焦点的问题
- listview中的item和edittext强焦点问题怎么解决
- 继承ScrollView完美解决ListView+EditText焦点问题
- 关于ListView中EditText点击弹出软键盘及软键盘弹出后的焦点问题
- 解决listview里面edittext焦点问题
- ListView 中含有 EditText 导致焦点丢失的问题
- EditText嵌在ListView中导致安卓键盘闪退的问题
- ListView item中有button或EditText时 点击事件失效问题的解决
- 解决LIstView与EditText冲突问题
- ListView中Edittext焦点获取问题