我正在使用觸摸監聽器來顯示和隱藏一些音量控件,在ACTION_DOWN上顯示控件並在ACTION_UP上隱藏它們。我希望能夠在不擡起手指的情況下觸摸控件,我嘗試使用ACTION_MOVE動作,並且無法使其正常工作,因爲事件從未觸發。我想過拖曳事件,但我不確定這是否適合。我會在這種情況下使用什麼樣的動作事件?
public boolean onTouch(View v, MotionEvent e)
{
if(v == audioControls)
{
if(e.getAction() == MotionEvent.ACTION_DOWN)
showVolumeControls();
else if(e.getAction() == MotionEvent.ACTION_UP)
hideVolumeControls();
}
else if(e.getAction() == MotionEvent.ACTION_MOVE)
{
if(v == mute)
//Do stuff with this volume control
}
return true;
}
@Demand答案,閱讀我的評論 - 這裏是代碼:
public boolean onTouch(View v, MotionEvent e)
{
if(v == mute && e.getAction() == MotionEvent.ACTION_MOVE)
{
Toast.makeText(getApplicationContext(), "Muted.", Toast.LENGTH_SHORT).show();
hideVolumeControls();
return true;
}
else
return false;
}
你能舉個例子嗎?我在單個視圖中用我的action_move試了一下,並嘗試在屏幕上隨意拖動(而不是擡起),然後在視圖上移動以查看它是否觸發了事件,但事實並非如此。我把代碼放在我的編輯 – joe 2015-01-21 10:09:20
@joe我更新了我的答案。 – 2015-01-23 11:19:47