如何在未触摸时使键盘的POPUP窗口关闭
问题描述:
我正在创建一个自定义软键盘,并创建了一个PopupWindow以显示按键被长按的时间,例如当您长按E键时,它会显示E,É,È你选择一个。弹出窗口有一个关闭他的键,但我想删除此键并在用户正在触摸时使其显示,然后用户长按,拖动到他想要释放的键。如何在未触摸时使键盘的POPUP窗口关闭
我使用的是8
弹出以KeyboardView类创造了onLongPress方法Android的API。
final View custom = LayoutInflater.from(context)
.inflate(R.layout.popup_layout, new FrameLayout(context));
final PopupWindow popup = new PopupWindow(context);
popup.setContentView(custom);
popup.setWidth(WindowManager.LayoutParams.WRAP_CONTENT);
popup.setHeight(WindowManager.LayoutParams.WRAP_CONTENT);
popup.showAtLocation(this, Gravity.NO_GRAVITY, popupKey.x, popupKey.y-50);
用于关闭弹出按钮:
buttonCancel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
popup.dismiss();
}
});
我认为可以使用的东西与onTouch方法,但如何识别释放的事件?并在哪里使用它?在keyboardView上,或者在弹出窗口中?
答
我设法与要做到这一点:
@Override
public boolean onTouchEvent(MotionEvent me){
if(popup != null && me.getAction() == MotionEvent.ACTION_UP){
popup.dismiss();
}
}
我首先创建一个方法来显示在logcat的每一个触摸事件的代码,然后我得到的出现,当我离开触摸的代码,并与比较文档,它是MotionEvent.ADCTION_UP的代码。 有了这个,它只是放在弹出窗口。