2017-03-23 3 views
-1

J'ai essayé d'animer le bouton du haut à une position fixe sur l'écran, cela a fonctionné, quand clicklistener a été ajouté sur le bouton, mais il ne fonctionne pas lorsqu'il est attaché au relativelayout. Alors que le bouton incluant relativelayout s'anime. Je pense que le problème est lors de la mise en page dans les groupes de vue imbriqués, S'il vous plaît aidez-moi avec une solution. Merci d'avance.L'animation ne fonctionne pas lorsqu'elle est associée à la disposition parente (RelativeLayout)?

b = (Button) findViewById(R.id.simpleButton); 
    relativeLayout = (RelativeLayout) findViewById(R.id.wrapper); 
    b.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      b.startAnimation(animations()); 
     } 
    }); 
    relativeLayout.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      relativeLayout.setAnimation(animations()); 
     } 
    }); 
} 


private TranslateAnimation animations() { 
    TranslateAnimation translateAnimation = new TranslateAnimation(0f, 0f, 0, -40); 
    translateAnimation.setDuration(1000); 
    translateAnimation.setInterpolator(new AccelerateInterpolator()); 
    return translateAnimation; 
} 

Voici le XML;

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical"> 
    <RelativeLayout 
android:id="@+id/wrapper" 
android:layout_width="match_parent" 
android:background="#cbcbbc" 
android:layout_height="60dp"> 
    <Button 
     android:id="@+id/simpleButton" 
     android:layout_width="wrap_content" 
     android:layout_height="40dp" 
     android:text="Go next page" /> 
    </RelativeLayout> 

    </LinearLayout> 
+0

Poster mise en page 'xml'. – azizbekian

+0

Qu'est-ce que vous voulez réaliser et que se passe-t-il? – azizbekian

+0

quand j'appuie sur le bouton, la mise en page vient du haut et entre dans sa position, de même que je veux atteindre cela avec toute la mise en page, y compris la mise en page parente. Cela ne fonctionne que sur le clic du bouton, pas sur le relativelayout cliquez sur –

Répondre

2

Ajouter à ce RelativeLayout:

android:clickable="true" 

Au lieu de:

relativeLayout.setAnimation(animations()); 

Faites ceci:

relativeLayout.startAnimation(animations()); 
+0

cela ne fonctionne pas –

+0

merci beaucoup @azizbekian –