2013-04-12 24 views
13

Tôi đang tạo hoạt ảnh sẽ được hiển thị khi người dùng chuyển đến một hoạt động cụ thể. Về cơ bản, hoạt động này trượt lên để được hiển thị và trượt xuống để được đóng lại. Tôi đang sử dụng overridePendingTransition để làm cho hoạt ảnh này xảy ra.Hoạt ảnh trượt của hoạt động với ghi đèPendingTransition có hiệu ứng lạ

Nhưng có hiệu ứng xấu với trang chiếu. Nó có thể được nhìn thấy trong ảnh chụp màn hình: Screen shot

Nhìn vào hình chữ nhật màu xám đó trên hoạt động đang đóng. Tại sao nó được hiển thị?

Tôi nghĩ đó sẽ là chế độ xem android.R.id.content của Android, vì vậy tôi đã cố gắng thay đổi nền của nó nhưng nó không hoạt động.

Tôi đang sử dụng ActionBarSherlock và mã được hiển thị dưới đây:

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"/> 

nothing.xml

<alpha xmlns:android="http://schemas.android.com/apk/res/android" 
    android:duration="0" android:fromAlpha="1" android:toAlpha="1"/> 

Bắt đầu hoạt động:

Intent intent = new Intent(); 
intent.setClass(getActivity(), PlayerActivity.class); 
startActivity(intent); 

getActivity().overridePendingTransition(R.anim.slide_in_from_bottom, R.anim.nothing); 

Bế mạc hoạt động:

@Override 
public void onBackPressed() { 
    finish(); 
    overridePendingTransition(R.anim.nothing, R.anim.slide_out_to_bottom); 
} 
+0

Loved rằng picture, Cảm ơn bạn đã gửi giải pháp – swiftBoy

Trả lời

4

Tôi tìm thấy câu trả lời cho vấn đề của tôi ở đây:

https://stackoverflow.com/a/6396465/1140713

tôi vừa tạo ra một BaseActivity rằng tất cả các hoạt động của tôi là subclassing và thêm đoạn mã sau trong onCreate:

ColorDrawable colorDrawable = new ColorDrawable(Color.TRANSPARENT); 
getWindow().setBackgroundDrawable(colorDrawable); 
3

Đó có lẽ vì notificationBar của bạn. Hoạt động tiếp theo của bạn cũng có notificationBar và nó đi kèm với không gian của nó. Không chắc chắn, nếu có bất kỳ công việc ra cho điều này ... Bạn có thể cố gắng để thiết lập FullScreen nhưng tất nhiên đây không phải là những gì bạn muốn.

+0

Cảm ơn bạn đã trả lời. Nó thực sự là notificationBar. Dù sao, tôi tìm thấy một giải pháp mà không cần phải thiết lập toàn màn hình: http://stackoverflow.com/a/6396465/1140713. Tôi sẽ sớm cập nhật câu hỏi. –

+1

Ahh tốt đẹp, không biết điều đó. Cảm ơn bạn đã hướng dẫn tôi :) – yahya