Fragment中 EditText 单击无法弹出软键盘

先说一下怎么出现的这个问题,Fragment中嵌套Fragment,最里面布局如下图。
在这里插入图片描述
首次打开正常,当滑动列表后。发现Edittext无法弹出软键盘
由于是在Fragment中的Fragment,各种软键盘回调均不好使。

先说解决办法:

重写edittext控件,对其touch事件进行重写

public class LXTouchEditText extends android.support.v7.widget.AppCompatEditText {
    
    
    public LXTouchEditText(Context context) {
    
    
        super(context);
    }

    public LXTouchEditText(Context context, AttributeSet attrs) {
    
    
        super(context, attrs);
    }

    public LXTouchEditText(Context context, AttributeSet attrs, int defStyleAttr) {
    
    
        super(context, attrs, defStyleAttr);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
    
    
        if(MotionEvent.ACTION_DOWN == event.getAction()) {
    
    
            clearFocus();  //在滑动设备列表的时候,editview无法弹出软键盘
        }
        return super.onTouchEvent(event);
    }

}

注意这里要判断event是属于按下动作,否则的话由于edittext很敏感会导致多次调用clearFocus()。然后就是对每次触摸事件都清除一次焦点。这样无论怎么滑动listview,edittext都能正常的弹出软键盘。

猜你喜欢

转载自blog.csdn.net/mingtiannihao0522/article/details/115321981