2013-05-17 13 views
24

私ができるアクティビティをボトムからトップにスライドしようとしています。アクティビティは下から上にスライドしますが、バックグラウンドアクティビティは移動しません。

しかし、下から上にスライドしている間、私のバックグラウンドの活動もまた底に滑っています。 バックグラウンドアクティビティを元どおりの同じ位置に保ちたいので、新しいアクティビティが開いたときにバックグラウンドアクティビティのオーバーレイとして見えるようにします。ここで

は私のslide_in_up.xml

<?xml version="1.0" encoding="utf-8"?> 
<translate xmlns:android="http://schemas.android.com/apk/res/android" 
android:fromYDelta="100%p" android:toYDelta="0%p" 
android:duration="@android:integer/config_longAnimTime"/> 

とslide_out_up.xml

<?xml version="1.0" encoding="utf-8"?> 
<translate xmlns:android="http://schemas.android.com/apk/res/android" 
android:fromYDelta="0%p" android:toYDelta="100%p" 
android:duration="@android:integer/config_longAnimTime"/> 

私はそれをどのように行うことができますか?
おかげで...

答えて

41

そして、まだ現在のアクティビティ滞在をするために、発信アニメーションを提供します。

overridePendingTransition(R.anim.slide_in_up, R.anim.stay); 

stay.xml:

<?xml version="1.0" encoding="utf-8"?> 
<translate xmlns:android="http://schemas.android.com/apk/res/android" 
    android:duration="@android:integer/config_longAnimTime" 
    android:fromYDelta="0%p" 
    android:toYDelta="0%p" /> 
+0

いや....新しい活動が – Pratik

+0

感謝をスライドしている間、実際のバックグラウンド活動が終了を取得...それは働いた...実際に私たちが0を使用しているときラウンドアクティビティが終了し、新しいアクティビティが表示されます。 しかし、上記のxmlを使用すると、今度は私が望むように動作しました。 – Pratik

2

をあなたは単にoverridePendingTransition(R.anim.slide_in_up, 0)

を呼び出すことができます0はアニメーションなしを意味します。

+0

私はここで0は "デフォルト"(API 26+以上である)を意味するので、黒色の背景やウィンドウの色の背景を取得します。 –

36

slide_up.xml

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/accelerate_decelerate_interpolator"> 

    <translate 
     android:duration="@android:integer/config_longAnimTime" 
     android:fromYDelta="100%p" 
     android:toYDelta="0" /> 

</set> 

slide_down.xml

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/accelerate_decelerate_interpolator"> 

    <translate 
     android:duration="@android:integer/config_longAnimTime" 
     android:fromYDelta="0" 
     android:toYDelta="100%p" /> 

</set> 

stay.xml

<?xml version="1.0" encoding="utf-8"?> 
<translate xmlns:android="http://schemas.android.com/apk/res/android" 
    android:duration="@android:integer/config_longAnimTime" 
    android:fromYDelta="0%p" 
    android:toYDelta="0%p" /> 

オープン活動

startActivity(new Intent(FromActivity.this, ToActivity.class)); 
overridePendingTransition(R.anim.slide_up, R.anim.stay); 

閉じる活動

finish(); 
overridePendingTransition(R.anim.stay, R.anim.slide_down); 
+1

私のために働く。 ' この行の変更overridePendingTransition(R.anim.stay、R.anim.slide_down);' –

関連する問題