2016-06-17 9 views
0

私はAndroidのアプリを使って、画面中央から画面の中央に垂直に中央のビューをアニメーション表示する必要があります。このビューの下には、中心のビューの真下に位置する関連コンテンツを含む別のビューがあります。中央のビューがアニメーション化されるとき、私は下のビューを(layout_alignParentBottom = "true"のように)画面の上端だけでなく下端にも '固定'したいと考えています。底面図がアップアニメーション化として現在しかし、ギャップは底面図と画面の底部との間に残されている:Android:RelativeLayout layout_alignParentBottomを使ってYアニメーションを翻訳する

enter image description here

下に固定、それを維持しながら、底面図をアニメーション化する最も簡単な方法は何画面の?ここで

は私のレイアウトXMLである:ここで

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="newsoni.com.testrelativelayouttranslation.MainActivity"> 

    <View 
     android:layout_width="match_parent" 
     android:layout_height="20dp" 
     android:background="#FF0000" 
     android:layout_centerVertical="true" 
     android:id="@+id/centerBar" /> 
    <View 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:background="#00FF00" 
     android:layout_below="@+id/centerBar" 
     android:id="@+id/bottomPanel" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Do animation" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentRight="true" 
     android:id="@+id/btn" /> 

</RelativeLayout> 

は私のJavaのである:ここでは

public class MainActivity extends AppCompatActivity { 

    private View mCenter, mBottomPanel; 
    private Button mBtn; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     mCenter = findViewById(R.id.centerBar); 
     mBottomPanel = findViewById(R.id.bottomPanel); 
     mBtn = $(R.id.btn); 

     mBtn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       int value = mCenter.getTranslationY() == 0 ? -mCenter.getTop() : 0; 
       mCenter.animate() 
         .translationY(value) 
         .setDuration(250) 
         .start(); 
       mBottomPanel.animate() 
         .translationY(value) 
         .setDuration(250) 
         .start(); 
      } 
     }); 

    } 

    @SuppressWarnings("unchecked") 
    public <T extends View> T $(int id) { 
     return (T) findViewById(id); 
    } 
} 

は、あなたがダウンロードできるプロジェクトへのリンクです:

https://drive.google.com/file/d/0B-mqMIMqm_XHamxENkhIZDJDMHM/view?usp=sharing

答えて

0

私は標準Animationを使用し、を上書きしましたを使用して、ボトムビューのLayoutParamsを手動で変更します。

関連する問題