2017-04-10 40 views
1

我在應用程序中有5到6個活動我已經在活動開始和結束活動中添加了從左到右和從右到左的動畫,但當它點擊時它不能正常工作新的活動它的工作正常,它從右到左開始,但是當我按回按鈕時,它也從右到左開始。但是當我按下硬件後退按鈕時,它的工作從左到右。這裏是我的代碼 從右到左的動畫動畫無法在Activity中正常工作,而在開始和銷燬時

leftin.xml

<set xmlns:android="http://schemas.android.com/apk/res/android"> 
<translate 
    android:fromXDelta="100%p" 
    android:toXDelta="0" 
    android:duration="500"/> 

leftout.xml

<set xmlns:android="http://schemas.android.com/apk/res/android"> 
<translate 
    android:fromXDelta="0" 
    android:toXDelta="-100%p" 
    android:duration="500"/> 

rightin.xml

<set xmlns:android="http://schemas.android.com/apk/res/android"> 
<translate 
    android:fromXDelta="-100%p" 
    android:toXDelta="0" 
    android:duration="500"/> 

rightout.xml

<set xmlns:android="http://schemas.android.com/apk/res/android"> 
<translate 
    android:fromXDelta="0" 
    android:toXDelta="100%p" 
    android:duration="500"/> 

這裏是代碼的OnCreate活動

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_sub__category); 
    overridePendingTransition(R.anim.left_in, R.anim.left_out); 
} 

,這裏是my_back按鈕的代碼

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

      Intent myint = new Intent(Sub_Category_Activity.this,Home.class); 
      startActivity(myint); 
      overridePendingTransition(R.anim.right_in, R.anim.right_out); 
      finish(); 
     } 
    }); 

,這裏是我的onbackpress覆蓋方法的代碼。

@Override 
public void onBackPressed() { 
    super.onBackPressed(); 

    Intent myint = new Intent(Sub_Category_Activity.this,Home.class); 
    startActivity(myint); 
    overridePendingTransition(R.anim.right_in, R.anim.right_out); 
    finish(); 
} 

這裏我面臨的問題是,當我按下硬件後退按鈕的工作很好,但是當我按回到我的UI的按鈕,它不是從左至右開始,但開始新的活動形式留

+0

試着把'overridePendingTransition(in,out);'in'onPause'中。 –

回答

0

使用此代碼:

overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_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="800" android:fromXDelta="100%" android:toXDelta="0%" /> 
    <alpha android:duration="800" android:fromAlpha="0.0" android:toAlpha="1.0" /> 
</set> 

滑出左XML:這裏

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

write overridePendingTransition(R.anim.right_in,R.anim.right_out); after finish();方法。

0

我不認爲你需要調用overridependingtransitions()方法的onCreate()

0

是喜是如何實現這個動畫。我知道我的想法並不是專業的方式,但最終我以我的方式實現了這一目標。 這裏我有活性A,B,C等活性B I檢查是它從活動A或C點擊,根據我用if條件和

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_test); 
    pref = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE); 
    editor = pref.edit(); 

    String fromhome =pref.getString("from_home_list_adapter",""); 
    if(fromhome.equals("yes")) 
    { 
     editor.putString("from_home_list_adapter","no"); 
     editor.commit(); 
     overridePendingTransition(R.anim.left_in, R.anim.left_out); 
    } 

再次實現動畫某種方式如以下代碼我說這不是專業的方式來處理動畫,但它的作品