Tôi đang cố gắng xử lý tất cả API ActionBar và Fragments mới. Tôi có một hoạt động chính và tôi muốn nó quản lý hai tab khác nhau. Tôi đang sử dụng ActionBarSherlock để hỗ trợ phiên bản cũ hơn ICS.Fragment onResume không được gọi sau khi Fragment được tách ra và sau đó đính kèm lại
Mỗi tab chứa Fragment
riêng (mỗi cái là một lớp con của SherlockListFragment
) Tôi nhận nó hoạt động cơ bản, nhưng tôi có vấn đề là tôi chắc chắn là ngu ngốc, nhưng tôi không thể hiểu được chưa:
Lần đầu tiên mỗi Phân đoạn được hiển thị, mọi thứ đều OK, danh sách được điền và do đó các MenuItems trong ActionBar.
Nhưng lần thứ hai bạn nhìn thấy một tab (Sau khi swicth và switch-back), danh sách không nhận được, cũng không phải là ActionBems MenuBar.
Đây là cách tôi đang chuyển đổi các tab:
@Override
public void onTabSelected(Tab tab, FragmentTransaction transaction) {
SherlockListFragment toAttach = // Find the right fragment here...
if (toAttach != null) {
if (toAttach.isAdded() == false) {
transaction.add(R.id.tab_placeholder, toAttach,
REMINDER_FRAGMENT_TAG);
} else {
transaction.attach(toAttach);
}
}
}
Và onTabUneselect Tôi tách các Fragment:
@Override
public void onTabUnselected(Tab tab, FragmentTransaction transaction) {
SherlockListFragment toDetach = // Find the right fragment
if (toDetach != null) {
transaction.detach(toDetach);
}
}
Tôi Populating danh mục và menu ActionBar trong onResume:
@Override
public void onResume() {
super.onResume();
setHasOptionsMenu(true);
fillRemindersList();
}
Tôi cũng đã thử tính năng này trong onStart và onCreateView nhưng không được ...
Vì vậy, tôi thiếu gì ở đây? Và nếu có những vấn đề khác trong mã của tôi mà tôi không biết, xin vui lòng cho biết.
Cảm ơn!
EDIT: tab
Tôi chỉ khẳng định rằng onResume
doesnt được gọi sau khi tôi chuyển đổi các tab, đó là chắn sai vì tôi tách và tái gắn họ ... Tôi chuyển đổi các nhầm đường?
Cảm ơn, tôi hy vọng rằng đây là câu trả lời, mặc dù nó không liên quan nữa, bởi vì tôi đã chuyển sang Danh sách điều hướng. (Làm cho ý nghĩa hơn trong trường hợp của tôi, và hoạt động hoàn hảo :)) –
Trong trường hợp của tôi gọi là 'FragmentTranaction.remove (fragment # 1)' trong đoạn # 1 ngay trước khi gọi 'FragmentTransaction.commit()' giúp tôi buộc đoạn # 1 đi qua onPause() ... onDestroyView() trên thay thế và đi qua onCreateView() ... onResume() khi tôi quay trở lại đoạn # 1 nhấn nút quay lại. –