Я работаю над приложением, которое состоит из многих видов деятельности, представляющих этапы. Таким образом, есть Stage1Activity, Stage2Activity, Stage3Activity и т. Д. В каждом действии есть кнопка (или несколько кнопок), которые после щелчка переходят к следующему действию. То, что я хотел сделать, - это оживить переход между этими действиями.Push In/Out Анимация между действиями
Я добавил два файла XML в папку res/anim. Push_left_in.xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="100%p" android:toXDelta="0" android:duration="300"/>
<alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="300" />
</set>
И push_left_out.xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="0" android:toXDelta="-100%p" android:duration="300"/>
<alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="300" />
</set>
В основной деятельности, Stage1Activity у меня есть:
public class Stage1Activity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_stage1);
overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
if (keyCode == KeyEvent.KEYCODE_BACK){
finish();
overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);
return true;
}
return super.onKeyDown(keyCode, event);
}
}
Теперь, когда я перехожу через деятельность в переходный период работает так, как должно. Новая активность выталкивает старую из поля зрения справа налево. Я хотел получить обратный эффект, когда пользователь нажимает кнопку «Назад» на своем устройстве, однако одна и та же переходная анимация разыгрывается. Я играл с андроидом: из тегаXDelta и достиг некоторых довольно странных результатов, но я просто не знаю, как его установить, чтобы при нажатии кнопки «Назад» на устройстве новая активность (фактически старая, недавно вызванная с намерением) выталкивает старый слева направо.
В принципе, я хочу, чтобы он выглядел так, будто вы двигаетесь вправо, когда прогрессируете по этапам, но когда вы отжимаете назад, он должен выглядеть так, как будто вы вернулись (слева). Извиняюсь, если это глупый вопрос, но я действительно запутался, и мне очень нужна помощь:/
Но для меня проблема возникает в случае, когда я не хочу закончить выход из Activity (я просто хочу начать следующую над предыдущей) ... – VladimirVip