Tôi có hoạt động hiển thị một vài đoạn. Chế độ xem hoạt động chỉ chứa ViewPager được khởi tạo với FragmentPagerAdapter tùy chỉnh. Bộ điều hợp này cung cấp điều hướng trong 3 đoạn.Android: Cách tạo lại thanh Hành động khi phân đoạn đã thay đổi
Tất cả dường như hoạt động tốt ngoại trừ thanh Hành động.
tôi ghi đè phương pháp onCreateOptionsMenu() trong các mảnh vỡ của tôi để tạo thanh hành động cá nhân cho bất kỳ đoạn:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater)
{
super.onCreateOptionsMenu(menu, inflater);
menu.clear();
//fragment specific menu creation
}
Khi tôi làm swipe, đoạn mới xuất hiện, nhưng thanh hành động giữ nguyên trong vài giây. Có lẽ sau vài giây, phương thức này được gọi và thanh Hành động sẽ thay đổi.
Điều này có vẻ khá xấu khi thanh tác vụ được thay đổi trong một thời gian sau khi vuốt xong. Làm cách nào để tạo lại thanh tác vụ ngay trước khi bắt đầu vuốt?
Vấn đề là tôi có thể không tìm mọi cách rõ ràng để yêu cầu android tạo lại thanh tác vụ. –
@Mik tôi đã cập nhật câu trả lời của mình để trợ giúp nhưng tôi thực sự không hiểu bạn đầy đủ ... invalidateOptionsMenu() nên "yêu cầu android tạo lại thanh tác vụ" – roarster
Cảm ơn bạn đã trả lời, nhưng 1. Khi bạn gọi .invalidateOptionsMenu(); hệ thống không thực sự tạo lại thanh tác vụ. Nó chỉ gây ra việc gọi onCreateOptionsMenu() trong đoạn của bạn cho phép bạn thay đổi Menu (là một phần của thanh tác vụ). Nếu bạn gọi setHasOptionsMenu (true) trong đoạn của bạn, thì bạn không cần phải gọi invalidateOptionsMenu(), vì onCreateOptionsMenu() được gọi tự động. 2. Tôi không thể tìm thấy cách gọi onCreateOptionsMenu() trước khi vuốt. –