我很難搞清楚如何通過按動按鈕來滑動活動。我想要的是用戶按下按鈕,然後屏幕滑動。我想要的方式是第一個活動(帶按鈕的活動)向左滑動,而新的第二個活動從右側滑入。overridePendingTransition滑動活動進出順利
用下面的代碼,當按鈕被點擊時,第一個活動向右滑動,當我想讓它向左滑動時。然後當它完成滑動時,剩下的只是一秒鐘的黑屏,然後第二個活動剛剛出現並且不滑入。
所以第一個活動滑出錯誤的方向和下一個活動只是出現而不是滑動。我究竟做錯了什麼?我很難理解XML文件,所以聽到的是下面所有內容的代碼。
1日活動
@Override
public void onCreate(Bundle savedInstanceState) {
playBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(MainMenu.this, Levels.class);
startActivity(intent);
overridePendingTransition(R.anim.enter_from_right, R.anim.exit_out_left);
}
});
第二活性
@Override
public void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.levels);
overridePendingTransition(R.anim.enter_from_left, R.anim.exit_out_right);
所以我想,我的一些XML文件可能不正確。他們來了。
enter_from_left.xml
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="600"
android:fromXDelta="100%"
android:toXDelta="0%" >
</translate>
</set>
enter_from_right.xml
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="600"
android:fromXDelta="-100%"
android:toXDelta="0%" >
</translate>
</set>
exit_out_left.xml
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="600"
android:fromXDelta="0%"
android:toXDelta="-100%" >
</translate>
</set>
exit_out_right.xml
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="600"
android:fromXDelta="0%"
android:toXDelta="100%" >
</translate>
</set>
編輯 從第二個活動中刪除overridePendingTransition()
使它成爲第一個活動向左滑出,這是我想要的。但是,當第一個活動滑出時,它仍然只是顯示一個黑屏,而不是第二個活動從右側滑入。
你應該只需要一次覆蓋動畫,推新活動所以只有當。如果您從onCreate刪除覆蓋,它應該工作 – panini
@panini檢查編輯到我的開放職位。你幫助解決了一個問題。 – Matt
我認爲在你的enter_from_right動畫中,你的fromXDelta應該是100%,而不是-100% – panini