美文网首页
关于ListView中EditText在软键盘弹出后的焦点问题

关于ListView中EditText在软键盘弹出后的焦点问题

作者: AugustusMe | 来源:发表于2016-01-20 17:49 被阅读0次

    在ListView中,每次弹出软键盘后就会重新调用getView()方法,导致EditText失去焦点。

    解决办法:在getView()方法中添加监听器:

    editText.setOnTouchListener(new OnTouchListener() {

    @Override

    public boolean onTouch(View v, MotionEvent event) {

    if (event.getAction() == MotionEvent.ACTION_UP) {

    index = position;

    }

    return false;

    }

    });

    并且在getView方法结束前为EditText添加焦点:

    editText.clearFocus();

    if (index != -1 && index == position) {

    // 如果当前的行下标和点击事件中保存的index一致,手动为EditText设置焦点。

    editText.requestFocus();

    }

    但是这样,又会有新的问题出现,EditText中的光标停在最前面,并且不闪动,点击软键盘输入任何东西也不会在EditText中显示,这样,就要在EditText获得焦点后再做一个处理:

    editText.setSelection(editText .getText().length());

    相关文章

      网友评论

          本文标题:关于ListView中EditText在软键盘弹出后的焦点问题

          本文链接:https://www.haomeiwen.com/subject/aulyhttx.html