68

Tôi biết rằng phân cấp chế độ xem của một đoạn phải được tăng cao trong onCreateView, nhưng chức năng nào khác có thể nằm trong onCreateView so với những gì nên chờ onActivityCreated? Triển khai hiện tại của tôi sử dụng các hoạt động riêng cho mọi thứ và hoạt động điển hình thực hiện hầu hết công việc của mình trong phương thức onCreate, bao gồm việc tăng lượt xem, đặt chế độ xem nội dung, khởi tạo các tiện ích khác nhau với dữ liệu, thiết lập trình nghe, v.v.Android Fragment onCreateView vs. onActivityCreated

Vì vậy, điều này có lẽ tất cả có thể được chuyển vào onCreateView hay một số hàm sẽ được đưa vào phương thức onActivityCreated thay thế?

Trả lời

71

Nếu chế độ xem của bạn tĩnh, thì việc chuyển bất kỳ mã nào sang phương thức onActivityCreated là không cần thiết. Nhưng khi bạn - ví dụ, điền vào một số danh sách từ bộ điều hợp, thì bạn nên làm điều đó trong phương thức onActivityCreated cũng như khôi phục trạng thái xem khi setRetainInstance sử dụng để làm như vậy.

Ngoài ra, việc truy cập phân cấp chế độ xem của hoạt động gốc phải được thực hiện trong onActivityCreated, không sớm hơn.

+0

Tại sao không cần thiết trong trường hợp 'tĩnh'? Có vẻ như mọi người đều có điều này nhưng tôi đã không. – Diffy

+5

Đừng nghĩ rằng tất cả mọi người đã nhận nó, Diffy, nhưng họ chỉ hài lòng với câu trả lời :) – Boy

+7

@Diffy, ông có nghĩa là theo quan điểm tĩnh rằng chế độ xem được hiển thị cho người dùng là gì, nhưng bố cục xml tăng cao. Không có sửa đổi trong mã hóa hoặc khi chạy. –