2014-09-30 5 views
1

Когда в моей деятельности нажата кнопка, я хочу закончить текущую активность и запустить новую. Я хочу, чтобы новая активность была зафиксирована на месте и была показана за исходящей деятельностью, так как старая часть скрывается от экрана.Переход активности затенен, когда новая активность зафиксирована в позиции

Intent intent = new Intent(this, OverviewActivity.class); 
startActivity(intent); 
finish(); 
overridePendingTransition(R.anim.hold, R.anim.slide_out_top); 

Так что для новой деятельности я применяю в hold анимации; это заполнитель, который ничего не оживляет. Я также пробовал пропустить 0 вместо R.anim.hold, но это тоже не работает.

<?xml version="1.0" encoding="utf-8"?> 
<translate 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromXDelta="0" 
    android:toXDelta="0" 
    android:duration="@integer/slide_anim_duration" /> 

Новая активность отображаются непосредственно в фиксированном месте на вершине уходящей деятельности, поэтому скользящая анимация старой деятельности в настоящее время закрыта.

Могу ли я сделать новое действие за старым, а старый - анимировать с экрана?

+0

Вы называете намерение нитью или чем-то еще. –

+0

@GeorgeThomas Нет, это в основном потоке в ответ на нажатие кнопки. –

+0

@pskink Не имеет значения. –

ответ

0

Переупорядочивание заявления могут работать для вас

 Intent intent = new Intent(this, OverviewActivity.class); 
     overridePendingTransition(R.anim.hold, R.anim.slide_out_top); 
     startActivity(intent); 
     finish(); 

Вы перекрывая переход, когда вы начали свою новую деятельность и называется finish() на последнем.

+0

Нет, это не помогает. В документации указано, что 'overridePendingTransition()' должно быть вызвано _after_ 'finish()' или 'startActivity()' в любом случае. –

+0

Подмена порядка 'finish()' и 'startActivity()' тоже не помогает. –

+0

Попробуйте это http://stackoverflow.com/questions/11284238/overridependingtransition-shows-enter-animation-only – nobalG