2017-12-14 16 views
1

アイコンの下にナビゲーションバーがあります。アイコンをクリックすると、新しいアクティビティがインテントで始まります。下のナビゲーションバーにインテントを使用すると、スライドアニメーションがフェードします

context.startActivity(intent1.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP)); 

このようにします。 私がAndroid Pixelエミュレータでテストした場合、新しいアクティビティが開始されるとアニメーションは常に下から上に移動します。 身体アンドロイドデバイス(Android 7.1)でテストすると、新しいアクティビティが開始されたときにアニメーションは常に右から左に表示されます。アクティビティを閉じると、アニメーションは左から右に移動します。

私はいつもこのスライドアニメーションを(私の物理的なデバイスのように)したいです。私は何をしなければならないのですか?

私のactivitesの)のonCreate(IN

 overridePendingTransition(R.anim.slide_in, R.anim.slide_out); 

を加え、私は活動が開始したときにスライドを持っていますが、無スライドアニメーションときに活性近いです。あなたの助け

答えて

2

ため

おかげであなたは、2つの新しいアニメーションあなたのアニメーションフォルダ内のファイルやアニメーションをクローズする活動にいくつかのコードを必要とするonBackPressed方法に変更を追加します

ファーストアニメーションファイル: left_to_right.xml:

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shareInterpolator="false"> 
    <translate 
     android:duration="500" 
     android:fromXDelta="-100%" 
     android:fromYDelta="0%" 
     android:toXDelta="0%" 
     android:toYDelta="0%" /> 
</set> 

right_to_left.xml:

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shareInterpolator="false"> 
    <translate 
     android:duration="500" 
     android:fromXDelta="0%" 
     android:fromYDelta="0%" 
     android:toXDelta="100%" 
     android:toYDelta="0%" /> 
</set> 

そして活動で次の操作を行います。

@Override 
public void onBackPressed() { 
    super.onBackPressed(); 
    overridePendingTransition(R.anim.left_to_right, R.anim.right_to_left); 
} 

PSはまた、あなたのコードは大丈夫であったとしても、あなたの携帯電話は、2つのXMLファイルのための

+0

おかげでアニメーションをオフにしている場合がありますので注意してくださいこれらは機能しています。デバイスの戻るボタンを使用すると、onBackPressedが動作しています。しかし、ナビゲーションバーでナビゲートすると機能しません。私はonResumeでもやってみましたが、いつもそう呼ばれているので、活動は常に左から来ます。 onRestartの方がうまくいくのですが、ありがとうございます。 –

+0

onResumeで試してみません! onPause()でそれを試してください。これはあなたのnav barの問題に役立ちます!私のコードがあなたの問題を解決した場合は、このスレッドを閉じるために回答を受け入れたものとしてマークしてください – Rainmaker

関連する問題