我遇到一個奇怪的小問題,我onTouchEvent
。當你觸摸屏幕的邊緣,它應該顯示操作欄(使用ActionbarSherlock
,而不是機器人動作條),以及移動的按鈕"buttonClick"
下來,以適應操作欄的高度。的Android onTouch必須以兩次觸發觸發actionBar.show()和按鈕位置變化
這工作,但只有當你觸摸兩次。在第一次觸摸時,操作欄顯示,並在第二次觸摸時,按鈕向下移動。我不知道爲什麼它沒有在第一觸摸期間都做,我搜索在這裏只打開了與它有沒有發射所有,或一對夫婦曾在onTouch是只有射擊兩次問題問題的人,從來沒有一次。
我onTouchEvent()
代碼如下,我會很感激,如果有人可以幫助我理解它爲什麼這樣做,讓。
public boolean onTouchEvent(MotionEvent event) {
int x = (int)event.getX();
int y = (int)event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
Log.v(TAG, "New Touch");
Log.v(TAG, "Screen Width: "+ screen_width);
if (x >= (screen_width - 95)){
int actionHeight = getSupportActionBar().getHeight();
Log.v(TAG, ""+actionHeight);
thumbParams.setMargins(0,actionHeight,0,0);
thumbClick.setLayoutParams(thumbParams);
params.setMargins(0,actionHeight,0,0);
buttonClick.setLayoutParams(params);
getSupportActionBar().show();
}
case MotionEvent.ACTION_MOVE:
case MotionEvent.ACTION_UP:
}
return false;
}
我不認爲這是一個觸摸事件處理程序的問題。由於您第一次看到顯示條而不是按鈕,請檢查您如何移動按鈕。很明顯,您的代碼在操作欄顯示後正在執行。 – neo 2013-05-13 15:45:03
嗨,感謝您的評論!我通過調整粘貼的代碼中的邊距來移動按鈕。我將垂直邊距設置爲actionBar的高度,然後將按鈕的參數設置爲更新後的參數。我很困惑,因爲它*運行,它必須在它發生之前第二次被擊中。 我試圖把它放在顯示操作欄的代碼後面,以防它在隱藏的時候做了一些奇怪的事情,高度爲0.沒有任何區別。 – 2013-05-13 17:07:52
觸摸之前是否有按鈕可見? – neo 2013-05-13 19:33:47