Tôi gặp vấn đề tương tự.
Tôi đã sử dụng hướng dẫn nổi bật thực hành với đoạn (Building a Flexible UI). Tôi có hai mảnh (ListItemsFragment và InfoItemFragment). Khi sử dụng kích thước màn hình bình thường, tôi thay thế ListItemsFragment tại InfoItemFragment và phương thức onHiddenChanged không gọi tự động.
FragmentTransaction mFragmentTransaction = getFragmentManager().beginTransaction();
mFragmentTransaction.replace(R.id.container_fragment, new InfoItemFragment(), "tag_fr_infoItem");
mFragmentTransaction.addToBackStack(null);
mFragmentTransaction.commit();
Tôi nghĩ rằng chúng ta phải gọi là để che dấu lại phương pháp FragmentTransaction. Ví dụ:
ListItemsFragment mListItemsFragment;
FragmentTransaction mFragmentTransaction = getFragmentManager().beginTransaction();
mFragmentTransaction.replace(R.id.container_fragment, new InfoItemFragment(), "tag_fr_infoItem");
if (mListItemsFragment != null) {
mFragmentTransaction.hide(mListItemsFragment);
}
mFragmentTransaction.addToBackStack(null);
mFragmentTransaction.commit();
Và bây giờ phương thức onHiddenChanged hoạt động tốt. Khi người dùng nhấp vào nút quay lại mListItemsFragment một lần nữa hiển thị và phương thức onHiddenChanged được gọi là tự động.
Trong tài liệu hướng dẫn cho biết: này sẽ được gọi bất cứ khi nào đoạn thay đổi trạng thái từ đó
Tôi nghĩ rằng chúng ta phải thủ công giá trị thay đổi thì phương pháp sẽ được gọi.
Cảm ơn câu trả lời nhưng phương pháp này không được gọi bao giờ hết. Vì vậy, tôi đã giải quyết nó do thực tế là người xem của tôi có một người nghe. Trong người nghe này tôi gọi phương thức onHidden-Changed. Stupid nhưng yeah, nó hoạt động ngay bây giờ. – mikepenz
Nó chưa bao giờ được gọi. –