2010-07-20 46 views
39

Hoạt ảnh mặc định khi nhấn nút Back là một trang trình bày từ trái sang phải. Tôi muốn thay thế bằng một hoạt ảnh tùy chỉnh. Tôi hiện đang nghĩ rằng một số kết hợp của onBackPressed()overridePendingTransition sẽ thực hiện thủ thuật, nhưng tôi đã không thể làm cho nó hoạt động.Hoạt ảnh nút quay lại tùy chỉnh

+0

Bao gồm một số mẫu mã, nếu không chúng tôi không có ý tưởng những gì bạn có thể làm sai. – prestomation

Trả lời

111

Tôi nghĩ bạn không nên sử dụng kết thúc() vì dữ liệu được lưu trữ bởi Views sẽ bị xóa

@Override 
public void onBackPressed() { 
    super.onBackPressed(); 
    overridePendingTransition(R.anim.zoom_enter, R.anim.zoom_exit); 
} 
+1

Điều này là chính xác. – dfetter88

+9

Hãy lưu ý của siêu, nó cần phải được SAU nó, nếu không không có hiệu lực. –

+2

@ Chris.Jenkins Nếu bạn đang nói rằng 'overridepending..' phải sau' super', Vậy thì có. Nó sẽ được sau khi bất kỳ cuộc gọi hoàn thành. siêu cơ bản gọi là 'kết thúc'. do đó, 'overrride' phải sau' finish' hoặc 'super' trong trường hợp này. – Niranjan

5

Đã tìm ra. Tôi đã không finshing các hoạt động hiện tại. Đoạn mã sau thực hiện thủ thuật.

@Override 
public void onBackPressed() { 
    [This Activity].this.finish(); 
    overridePendingTransition(R.anim.fade_in, R.anim.fade_out); 
} 
+8

super.onBackPressed() tự động kết thúc cuộc gọi. Sử dụng thay vì gọi kết thúc bằng tay .. –

0

Tôi sẽ không sử dụng onBackPressed() vì nó là một hack khi chúng tôi sử dụng Fragments và chúng tôi cần phải xử lý ngăn xếp, ví dụ. Tôi đã đề xuất một giải pháp thanh lịch hơn ở đây:

https://stackoverflow.com/a/43725255/689723

Các vấn đề liên quan