2013-08-10 3 views
0

My ActionBar будет вызываться, нажав кнопку «Меню», как это. и он работает нормальноПочему он не обнаружит onTouch?

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
if(keyCode == KeyEvent.KEYCODE_MENU){ 
    if (mActionBar.isShowing()) { 
     mActionBar.hide(); 
    } 
    else { 
     mActionBar.show(); 
    } 
}else if(keyCode == KeyEvent.KEYCODE_BACK){ 
    WebView myWebView = (WebView)findViewById(R.id.webView1); 
    myWebView.goBack(); 
} 
return true; 
}  

Когда пользователь прикасается к экрану, пока отображается ActionBar, ActionBar должен исчезнуть.
Но он не обнаружит событие onTouch. Зачем?

public boolean onTouch(View view, MotionEvent event) { 
     switch(event.getAction() & MotionEvent.ACTION_MASK) { 
     case MotionEvent.ACTION_DOWN: 
      if (mActionBar.isShowing()) { 
       mActionBar.hide(); 
      } 
     case MotionEvent.ACTION_UP: 
     break; 
     case MotionEvent.ACTION_POINTER_UP: 
     break; 
     } 
     return true; 
    } 

UPDATE:

View.OnTouchListener mDelayHideTouchListener = new View.OnTouchListener(){ 
public boolean onTouch(View view, MotionEvent event) { 
     switch(event.getAction() & MotionEvent.ACTION_MASK) { 
     case MotionEvent.ACTION_DOWN: 
      if (mActionBar.isShowing()) { 
       mActionBar.hide(); 
      } 
     case MotionEvent.ACTION_UP: 
     break; 
     case MotionEvent.ACTION_POINTER_UP: 
     break; 
     } 
     return true; 
    } 

}; 

это еще не будет работать :(

+0

вы установите слушателя – androidu

+0

setOnTouchListener (это) – androidu

+0

@ MarciCăşvan Спасибо, но как? – HUSTEN

ответ

0

Изменить возвращаемое значение как ложное

return false; 
+0

Нет, это ничего не делало. – HUSTEN

Смежные вопросы