0
다음과 같이 View 확장 내에서 다음과 같은 두 번 탭 제스처가 있습니다. 이 이벤트는 해고되면 내보기로 초점을 변경합니다. MyView.this.requestFocus(); 가 호출되고 키보드가 나타납니다. 불행히도 (삼성 전자 갤럭시 노트 2 실행 안드로이드 4.0.4) 나는 전혀 dispatchKeyEvent 콜백을받지 않습니다. Android 4.4 이상을 실행하는 Nexus 4에서이 콜백을받습니다. 계속 진행하는 방법을 모르겠습니다.dispatchKeyEvent가 호출되지 않았습니다.
private class DoubleTapGestureListener extends SimpleOnGestureListener {
private Context mContext;
private Rect mTextBounds;
public DoubleTapGestureListener(Context context) {
super();
mContext = context;
}
@Override
public boolean onDoubleTap(MotionEvent e) {
float xValue = e.getX();
float yValue = e.getY();
for (PaintBrush brush : brushes) {
mTextBounds = brush.getTextBounds();
if (mTextBounds.contains((int)xValue, (int)yValue)) {
Log.i(TAG, "Doubletap on text!");
InputMethodManager imm = (InputMethodManager) mContext
.getSystemService(Context.INPUT_METHOD_SERVICE);
MyView.this.requestFocus();
imm.showSoftInput(MyView.this,
InputMethodManager.SHOW_FORCED);
}
}
return true;
}
public void setTextBounds(Rect mTextBounds) {
this.mTextBounds = mTextBounds;
}
}
}
죄송합니다. 안드로이드 개발에 조금 익숙하지만 다른 장치에서 이벤트가 시작됩니다. 그래서이 경우 갤럭시 노트 2와 넥서스 장치에서 해고 된 이벤트를받을 수 있도록 권장 할만한 것이 있습니까? – TheCodingArt
키보드 키를 눌렀을 때 이벤트가 발생하지 않아야합니다. 따라서 캐릭터 라인 값을 모델 객체에 추가하여 화면을 다시 그릴 수 있습니다. – TheCodingArt
Android 소프트 키 보드는 이와 같이 작동하지 않습니다. 보기를 위해 InputConnection을 구현해야하는데, 이는 상당히 많은 작업입니다. –