मेरे पास कुछ टुकड़े दिखाने वाली गतिविधि है। गतिविधि दृश्य में कस्टम FragmentPagerAdapter के साथ प्रारंभिक केवल ViewPager शामिल है। यह एडाप्टर 3 टुकड़ों के बीच नेविगेशन प्रदान करता है।एंड्रॉइड: खंड बदलते समय एक्शन बार को फिर से कैसे बनाएं
सभी एक्शन बार को छोड़कर ठीक काम करने लगते हैं।
मैं किसी भी टुकड़ा के लिए व्यक्तिगत कार्रवाई बार बनाने के लिए मेरे टुकड़े में onCreateOptionsMenu() विधि ओवरराइड:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater)
{
super.onCreateOptionsMenu(menu, inflater);
menu.clear();
//fragment specific menu creation
}
जब मैं कड़ी चोट करते हैं, नया टुकड़ा दिखाई देता है, लेकिन कार्रवाई बार कुछ सेकंड के लिए एक ही रहते हैं। शायद कुछ सेकंड के बाद इस विधि को बुलाया जाता है और एक्शन बार बदल जाता है।
स्वाइप समाप्त होने के बाद कुछ समय में एक्शन बार बदलते समय यह बहुत खराब लगता है। स्वाइप शुरू होने से पहले, मैं तुरंत कार्रवाई बार कैसे बना सकता हूं?
समस्या है मैं नहीं कर सकता एक्शनबार को फिर से बनाने के लिए एंड्रॉइड से पूछने का कोई स्पष्ट तरीका ढूंढें। –
@Mik मैंने मदद के लिए मेरा जवाब अपडेट कर दिया है, लेकिन मैं वास्तव में आपको पूरी तरह से समझ नहीं पा रहा हूं ... अवैध ऑप्शनमेनू() को "एंड्रॉइड से एक्शनबार फिर से बनाने के लिए पूछना चाहिए" – roarster
धन्यवाद, उत्तर के लिए, लेकिन 1. जब आप कॉल .invalidateOptionsMenu(); सिस्टम वास्तव में एक्शन बार फिर से बना नहीं है। यह केवल आपके टुकड़े में क्रिएटऑप्शनमेनू() पर कॉल करने का कारण बनता है जिससे आप मेनू बदल सकते हैं (जो एक्शनबार का हिस्सा है)। यदि आपने अपने टुकड़े में setHasOptionsMenu (true) कहा है, तो आपको अमान्य ऑप्शनमेनू() को भी कॉल करने की आवश्यकता नहीं है, क्योंकि ऑनक्रेटऑप्शनमेनू() को स्वचालित रूप से कॉल किया जाता है। 2. मुझे स्वाइप करने से पहले क्रिएटऑप्शनमेनू() पर कॉल करने का कोई तरीका नहीं मिला। –