2013-08-10 6 views
0

Mon ActionBar sera appelé en appuyant sur le "bouton Menu" comme ceci. et ça fonctionne bienPourquoi ne détectera pas 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; 
}  

Lorsqu'un utilisateur touche l'écran alors que ActionBar est affiché, ActionBar doit disparaître.
Mais il ne détectera pas l'événement onTouch. Pourquoi?

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; 
    } 

MISE À JOUR:

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; 
    } 

}; 

il ne fonctionne toujours pas :(

+0

avez-vous mis l'auditeur – androidu

+0

setOnTouchListener (ce) – androidu

+0

@ MarciCăşvan Merci, mais comment? – HUSTEN

Répondre

0

Modifier la valeur de retour comme faux

return false; 
+0

Nah, il n'a rien fait. – HUSTEN