के आधार पर एक्शनबार मेनू स्थिति बदलना मैं किस खंड को दिखाई दे रहा हूं, इस पर निर्भर करता हूं कि मैं अपने एक्शन बार में आइटम दिखाने/छिपाने की कोशिश कर रहा हूं।खंड
मेरी MainActivity में मैं निम्नलिखित है
/* 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);
}
यह महान तथापि, जब डिवाइस वहाँ घुमाया जाता है काम करता है एक मुद्दा है। घूर्णन पूरा होने के बाद PrepareOptionsMenu को फिर से बुलाया जाता है हालांकि इस बार यह.myFragment.isVisible() झूठी देता है ... और इसलिए जब मेनू स्पष्ट रूप से खंड दिखाई देता है (जहां तक स्क्रीन पर दिखाया गया है) मेनू आइटम छुपा हुआ है।
सुनिश्चित नहीं हैं, लेकिन आप दोनों पोर्ट्रेट और लैंडस्केप मोड के लिए एक ही टुकड़ा का उपयोग कर रहे हैं या आप लैंडस्केप मोड में रूप में अच्छी तरह से कुछ अन्य टुकड़े जोड़ सकता हूँ? घूर्णन पर जब यह स्वयं को फिर से शुरू करता है, तो आप सुनिश्चित हैं कि यह फ्रैगमेंट एक्टिविटी से जुड़ा हुआ है। आप fragment.isAdded() का उपयोग करके इसे देख सकते हैं? –
हां, क्रिएट विधि पर गतिविधि में मैं करता हूं: this.myFragment = new MyListFragment(); और फिर यह। myFragment गतिविधि –