这是我的代码,当用户释放他的手指时,该按钮被触摸并显示一个弹出窗口并将其解除。如何为PopupWindow设置OnTouchListener?
但我需要知道用户刚释放手指的天气,还是他滑入弹出窗口并从那里释放他的手指。
在我的代码中,这并没有真正起作用,因为我猜弹出窗口不会在用户释放他的手指时得到焦点。有没有办法解决它?
谢谢!
LinearLayout LinLay = new LinearLayout(this);
ImageView ivg = new ImageView(this);
ivg.setImageResource(R.drawable.icon);
LinLay.addView(ivg);
final PopupWindow pw = new PopupWindow(LinLay, 100, 100, true);
final Button bt2 = (Button)findViewById(R.id.button2);
bt2.setOnTouchListener(new OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_DOWN)
{
pw.showAtLocation(bt2, Gravity.CENTER, 0, 0);
}
else if(event.getAction() == MotionEvent.ACTION_UP)
{
pw.dismiss();
}
return true;
}
});
ivg.setOnTouchListener(new OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_UP)
{
showToast(); /// doesn't work! :)
}
return true;
}
});
}
public void showToast()
{
Toast.makeText(this, "AAA!", 500).show();
}
感谢您的输入! :)但问题有点不同,我需要找出用户在弹出窗口或其外部释放手指的天气。当然,我可以使用事件坐标,但只是认为可能有更好的方法。 – Roger