這是我的代碼,當用戶釋放他的手指時,該按鈕被觸摸並顯示一個彈出窗口並將其解除。如何爲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