ListView裡面有EditText,彈出鍵盤後EditView立刻不能獲取焦點的問題
阿新 • • 發佈:2019-02-08
遇到的問題是點選EditText,鍵盤彈出後,輸入游標會消失,需要再點選一次才能獲取游標,這個大概是因為listview不能很好的處理EditText作為item的情況,彈出鍵盤後應該view是重新生成的。
解決方案如下:
//點選時記錄下現在點選的是哪個EditText,也就是在編輯哪一個EditText
viewHolderChild.name.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event ) {
if (event.getAction() == MotionEvent.ACTION_UP) {
touchedPosition = position;
}
return false;
}
});
if (touchedPosition == position) {
// 如果當前的行下標和點選事件中儲存的index一致,手動為EditText設定焦點。
viewHolderChild.name.requestFocus();
}else {
viewHolderChild.name.clearFocus();
}