2012-12-09 11 views
15

Wdrażam nową funkcję zagnieżdżonego fragmentu i natknąłem się na problem. moim zdaniem jest po prostu to: działalność main (), który obejmuje fragment (B), ten fragment (B) zawiera adapter pager, który ma 3 strony, każdy z nich jest fragment (C) również. wcześniej do nowego getchildfragmentmanger nie było to możliwe, ale działa idealnie. ale powstał jeden problem, chcę fragmenty C, aby móc uczestniczyć w wypełnianiu menu opcji. i zmęczony oddanie setHasOptionsMenu (true) w metodzie onActivityCreated na każdym z moich C fragmentów i przesłanianie także onCreateOptionsMenu ale nic się nie dzieje ... jeśli próbuję wypełnić menu z fragmentem B (co jest pojemnik z adapter pager) mogę zmienić pozycje menu ...Android - NestedFragments uczestniczy w zapełnianiu menu opcji

jakieś myśli?

Dzięki.

Odpowiedz

11

Z mojego odczytu kodu źródłowego, wydaje się, że implementacje FragmentManager i Activity działa tylko z korzenia FragmentManager dodawania do paska menu Opcje/działania, a nie z dzieckiem FragmentManager przypadkach.

Fragment B prawdopodobnie będzie musiał zarządzać menu opcji/paska działań w imieniu zawartości ViewPager, zmieniając to, co jest w menu opcji/pasku akcji na podstawie wyświetlanych stron i ukrytych w pagerach.

+0

hi CommonsWare, dzięki za szybką powtórkę, to co skończyło się robi, ale miałem nadzieję na więcej kapsułkowanym rozwiązania. – senior

+0

Tak .. !! utknąłem też na ten temat ... i zrobiłem to, co powiedział murphy .. Dzięki, że znak –

+0

mogę wiedzieć, jak działa twoje obejście? Próbowałem wszystkiego i nadal jest źle. – Zyoo

16

Tak, mogą.

Z wersją 4.2 systemu Windows lub biblioteki pomocy 11 zagnieżdżonych fragmentów uczestniczy w zapełnianiu menu opcji, ponieważ zawsze musisz zadzwonić pod numer setHasOptionsMenu(true) podczas onCreate().

Ale jeśli używasz ActionBarSherlock, nie będzie, musisz ręcznie wywołać z macierzystego fragmentu onCreateOptionsMenu() metoda zagnieżdżonego fragmentu onCreateOptionsMenu().

Aktualizacja: issue

+0

Jesteś tego pewien? Używam ActionBarSherlock, ale o ile wiem, ABS używa zwykłego ActionBar, gdy urządzenie znajduje się powyżej ICS. Używam zagnieżdżonych fragmentów i obsługuję wersję 11, ale menu nie jest tworzone. – tasomaniac

+0

@tasomaniac Tak, jestem pewien. I zawsze możesz spojrzeć na źródło ABS i Android, tak jak ja. Problem nie występuje w actionbar, problem w sposobie, w jaki ABS obsługuje wywołania onCreateOptionsPanel() z FragmentActivity na fragmenty, a nie na zagnieżdżone fragmenty. – kreker

+0

Mówisz, że jeśli nie użyję ActionBarSherlock i skompiluję go z Androidem 4.0 i korzystam z biblioteki wsparcia, mogę użyć onCreateOptionsMenu w zagnieżdżonych fragmentach? – tasomaniac

Powiązane problemy