Анимация слайдов Activity со странным эффектом overridePendingTransition
Я создаю анимацию для отображения, когда пользователь переходит к определенному виду деятельности. В основном, эта деятельность скользит вверх, чтобы быть показаны и скользит вниз, чтобы быть закрытым. Я использую overridePendingTransition, чтобы сделать эту анимацию.
но есть уродливый эффект с горкой. Это можно увидеть на снимке экрана:
посмотрите на этот серый прямоугольник, показанный при закрытии активности. Почему это показано?
Я думал, что это будет андроид.R.id.вид контента Android, поэтому я попытался изменить его фон, но это не сработало.
я использую ActionBarSherlock и код показан ниже:
slide_in_from_bottom.в XML
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromYDelta="100%p"
android:toYDelta="0%p"
android:duration="@android:integer/config_mediumAnimTime"/>
slide_out_to_bottom.в XML
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromYDelta="0%p"
android:toYDelta="100%p"
android:duration="@android:integer/config_mediumAnimTime"/>
ничего.в XML
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="0" android:fromAlpha="1" android:toAlpha="1"/>
начало деятельности:
Intent intent = new Intent();
intent.setClass(getActivity(), PlayerActivity.class);
startActivity(intent);
getActivity().overridePendingTransition(R.anim.slide_in_from_bottom, R.anim.nothing);
закрытие мероприятия:
@Override
public void onBackPressed() {
finish();
overridePendingTransition(R.anim.nothing, R.anim.slide_out_to_bottom);
}
2 ответов
Я нашел ответ на мою проблему здесь:
https://stackoverflow.com/a/6396465/1140713
Я только что создал BaseActivity, что все мои действия подклассы и добавил следующий код в onCreate:
ColorDrawable colorDrawable = new ColorDrawable( Color.TRANSPARENT );
getWindow().setBackgroundDrawable( colorDrawable );
Это, вероятно, из-за вашего notificationBar. Ваше следующее действие также имеет notificationBar, и оно поставляется с его пространством. Не уверен, есть ли какая-то работа для этого... Вы можете попытаться установить полноэкранный режим, но, конечно, это не то, что вы хотите.