我正在开发android软键盘,我在弹出布局字符时遇到问题。
在上面的图片中,@是#。用户长按#的弹出字符。@出现。
我的问题:我想如果用户触摸@字符以外或按设备的后退按钮弹出窗口(@)消失,但它会出现,直到用户按@。 我怎么能这样做?
答案 0 :(得分:0)
您只需覆盖onTouchEvent
来检测手势并隐藏弹出视图。弹出字符使用在键盘布局(XML)中使用android:keyPreviewLayout
标记指定的自定义布局。
请参阅下面的示例onTouchEvent
:
@Override
public boolean onTouchEvent(MotionEvent event){
int action = MotionEventCompat.getActionMasked(event);
switch(action) {
case (MotionEvent.ACTION_DOWN) :
Log.d(DEBUG_TAG,"Action was DOWN");
return true;
case (MotionEvent.ACTION_MOVE) :
Log.d(DEBUG_TAG,"Action was MOVE");
return true;
case (MotionEvent.ACTION_UP) :
Log.d(DEBUG_TAG,"Action was UP");
return true;
case (MotionEvent.ACTION_CANCEL) :
Log.d(DEBUG_TAG,"Action was CANCEL");
return true;
case (MotionEvent.ACTION_OUTSIDE) :
Log.d(DEBUG_TAG,"Movement occurred outside bounds " +
"of current screen element");
return true;
default :
return super.onTouchEvent(event);
}
}