Trong Android, khi hướng màn hình thay đổi (giữa ngang và dọc), phương thức onCreate
được gọi, nếu không được xử lý đúng cách, sẽ tạo lại toàn bộ hoạt động khi kết quả quá đơn giản thay đổi bố cục và giữ lại tất cả các thông tin tương tự.Android: Xử lý xoay màn hình hiệu quả
Tôi biết một số cách để giải quyết vấn đề này, nhưng tôi quan tâm đến cách hiệu quả nhất.
1) Cho biết tệp kê khai mà tôi sẽ xử lý thay đổi hướng bằng cách ghi đè phương thức và để trống.
2) ghi đè onSaveInstanceState()
và lưu dữ liệu vào đây để được repopulated trong onCreate()
3) Override onPause()
mà sẽ tạo ra một bó của dữ liệu và gửi nó đến onSaveInstanceState()
Rõ ràng, đây là tất cả các tùy chọn, nhưng cái nào là phương pháp hay hơn (số lượng nhỏ, trung bình, lớn)
Cảm ơn bạn
Một cách là bạn có thể ngừng tạo lại Hoạt động và chỉ cần chuyển đổi giữa bố cục dọc và ngang. Kiểm tra câu trả lời của tôi [ở đây] (http://stackoverflow.com/questions/7749675/how-to-stop-changing-the-orientation-when-a-progress-bar-is-spinning-in-android/7749727#7749727) –
Mặc dù cách này dường như hoạt động tốt, tôi muốn có thể sử dụng tính năng tự động thay đổi trong bố cục bằng cách sử dụng thư mục 'res/layout-land'. Trừ khi tất nhiên nó là quá nhiều chi phí cho một hoạt động đơn giản. – Sababado
Vâng, điều này sẽ tự động thay đổi bố cục của nó, bạn chỉ cần thay đổi contentview trong mã đó. –