2017-06-22 2 views
0

J'ai un GridLayout centré dans la vue avec plusieurs TextViews. Lorsque j'obtiens un TextView et que je l'anime, les x et y sont relatifs à GridLayout.Animation de TextView dans GridLayout to top of view

Comment puis-je animer TextView à partir de GridLayout en haut de la vue à gauche du bouton (pas en haut de GridLayout).

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.example.research.app2.GridLayoutActivity"> 

     <Button 
      android:layout_alignParentRight="true" 
      android:id="@+id/animateButton" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 


      android:text="Animate" /> 


     <GridLayout 
      android:id="@+id/gridLayout" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_centerInParent="true" 
      android:layout_marginLeft="15dp" 
      android:layout_marginRight="15dp" 
      android:columnCount="4"> 

      <TextView 
       style="@style/gridViewText" 
       android:layout_column="0" 
       android:text="A" /> 

      <TextView 
       style="@style/gridViewText" 
       android:layout_column="1" 
       android:text="B" /> 

      <TextView 
       style="@style/gridViewText" 
       android:layout_column="2" 
       android:text="C" /> 

      <TextView 
       style="@style/gridViewText" 
       android:layout_column="3" 
       android:text="D" /> 

      <TextView 
       style="@style/gridViewText" 
       android:layout_column="0" 

       android:text="E" /> 

      <TextView 
       style="@style/gridViewText" 
       android:layout_column="1" 
       android:text="F" /> 

      <TextView 
       style="@style/gridViewText" 
       android:text="G" /> 

      <TextView 
       style="@style/gridViewText" 
       android:layout_column="3" 
       android:text="H" /> 

      <TextView 
       style="@style/gridViewText" 
       android:layout_column="0" 

       android:text="I" /> 

      <TextView 
       style="@style/gridViewText" 
       android:layout_column="1" 
       android:text="J" /> 

      <TextView 
       style="@style/gridViewText" 
       android:layout_column="2" 
       android:text="K" /> 

      <TextView 
       style="@style/gridViewText" 
       android:layout_column="3" 
       android:text="L" /> 

      <TextView 
       style="@style/gridViewText" 
       android:layout_column="0" 

       android:text="M" /> 

      <TextView 
       style="@style/gridViewText" 
       android:layout_column="1" 
       android:text="N" /> 

      <TextView 
       style="@style/gridViewText" 
       android:layout_column="2" 
       android:text="O" /> 

      <TextView 
       style="@style/gridViewText" 
       android:layout_column="3" 
       android:text="P" /> 
     </GridLayout> 


    </RelativeLayout> 



public class GridLayoutActivity extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_grid_layout); 
    final GridLayout gridLayout = (GridLayout) findViewById(R.id.gridLayout); 

    Button animatebutton = (Button) findViewById(R.id.animateButton); 

    animatebutton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      TextView textView = (TextView) gridLayout.getChildAt(15); 

      textView.animate().x(0f).y(0f); 

     } 
    }); 
} 

}

Répondre

0

j'ai pu résoudre ce problème en ajoutant

android: clipChildren = "false"

au parent RelativeLayout du GridLayout