2010-09-01 8 views
2

Je crée un widget personnalisé en développant LinearLayout. L'un des éléments de mon widget personnalisé est une disposition linéaire, gonflée à partir d'une autre mise en page. Lorsque je définis le OnClickListener, il ne répond pas. Pouvez-vous s'il vous plaît conseiller?LinearLayout OnClickListener ne répond pas

Merci!

+0

Pourrions-nous avoir du code s'il vous plaît? – fredley

Répondre

1

Avez-vous déclaré le LinearLayout cliquable?

Vous pouvez le faire soit dans le fichier XML:

android: cliquable = "true"

ou dans le code Java:

myLinearLayout.setClickable (true);

Voir aussi l'autre thread StackOverflow sur cette question:

onClickListener on a LinearLayout

+0

layout.setClickable (true); travaillé pour moi. J'ai essayé depuis le drapeau XML mais je ne travaillais pas – Lunatikul

2

Au lieu d'utiliser setOnClickListener utilisation setOnTouchListener Ce code fonctionne comme un événement onclick

YourLinearLayout.setOnTouchListener(new View.OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      boolean returnValue = true; 
      if(event.getAction()==MotionEvent.ACTION_UP){ //on touch release 
       returnValue = false; //prevent default action on release 
       //do something here 
      } 
      return returnValue; 
     } 
    }); 

Et puis l'ajouter à votre classe LinearLayout pour intercepter les événements tactiles d'un enfant

@Override 
public boolean onInterceptTouchEvent(MotionEvent ev) { 
    return true; //will prevent child touch events 
}