Tôi đang cố gắng hiển thị/ẩn các mục trong thanh tác vụ tùy thuộc vào phân đoạn nào hiển thị.Thay đổi trạng thái menu của thanh tác vụ tùy thuộc vào đoạn
Trong MainActivity của tôi, tôi đã sau
/* Called whenever invalidateOptionsMenu() is called */
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
if(this.myFragment.isVisible()){
menu.findItem(R.id.action_read).setVisible(true);
}else{
menu.findItem(R.id.action_read).setVisible(false);
}
return super.onPrepareOptionsMenu(menu);
}
này hoạt động tuyệt vời tuy nhiên, khi xoay thiết bị có một vấn đề. Sau khi quay hoàn thành onPrepareOptionsMenu được gọi lại tuy nhiên thời gian này this.myFragment.isVisible() trả về false ... và do đó mục trình đơn bị ẩn khi rõ ràng đoạn có thể nhìn thấy (như xa như hiển thị trên màn hình).
Bạn không chắc chắn nhưng bạn đang sử dụng cùng một đoạn cho cả chế độ dọc và ngang hoặc bạn thêm một số đoạn khác cũng như ở chế độ ngang? Khi xoay vòng khi nó khởi tạo lại chính nó là bạn chắc chắn nó đang được gắn vào FragmentActivity. Bạn có thể kiểm tra điều này bằng cách sử dụng fragment.isAdded()? –
Có, trong phương thức onCreate tôi làm: this.myFragment = new MyListFragment(); và sau đó this.myFragment được tham chiếu thông qua hoạt động –