12
votes

Comment faire un relativelayouout cliquable?

J'ai une mise en page comme celle-ci xxx

bouton_bgg.xml xxx

imageview_bg.xml xxx < / Pré>

La vue et bouton de l'image ont appuyé sur les images. Lorsque l'utilisateur clique sur la vue, vous souhaitez appuyer sur la touche ImageView et sur la touche (affichant des images enfoncées) .Mais cela ne montre pas d'images enfoncées. Comment y parvenir? Où est le problème?

Merci d'avance


3 commentaires

Avez-vous attaché un ONCLICKLISTENER à votre relativation?


Sont-ils empilés les uns sur les autres?


Remplacez la vue de l'image par une mise en page dans laquelle vous placez le bouton et ajoutez dupliquer l'état parent sur le bouton.


3 Réponses :


0
votes

SIMPLE.PLACE RELATILAYAYOUT AUX FRAMELAYOUT.


0 commentaires

17
votes
RelativeLayout rl = (RelativeLayout)findViewById(R.id.mainLayout);

rl.setOnClickListener(new View.OnClickListener(){
    public void onClick(View v) {}
 });

3 commentaires

Si vous recevez "" RelativitAnTout ne peut pas être résolu à un type ", assurez-vous d'importer les éléments suivants en haut de votre fichier Java: importer Android.Widget.RelatelAtentelayout; et importer Android.View.View;


Vous ne pouvez pas simplement définir Android: Clickable = "vrai" ?


N'oubliez pas non plus d'ajouter Android: Clickable = "False" pour vues à l'intérieur de la relativation.



5
votes

Je pense qu'il résout le problème

((RelativeLayout)findViewById(R.id.mainLayout)).setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View view) {
    ViewGroup viewGroup = (ViewGroup) view;
     for (int i = 0; i < viewGroup .getChildCount(); i++) {

       View viewChild = viewGroup .getChildAt(i);
       viewChild.setPressed(true);

          }
    }
});


0 commentaires