के आधार पर एक्शन बार मेनू आइटम दिखा रहा है मुझे कोड के निम्नलिखित भाग को काम करने में परेशानी हो रही है। मेरे पास viewpager
है जिसमें 3 टुकड़े हैं, और मैं एक खोज आइकन चाहता हूं जो केवल एक पर दिखाई दे। मैंने खंड द्वारा खोज फ़ंक्शन को जोड़ने का प्रयास करना शुरू कर दिया, लेकिन उस पृष्ठ पर स्वाइप करते समय मेनू आइटम का प्रतिपादन धीमा था।एंड्रॉइड: ViewPager
public class MyApp extends FragmentActivity implements
FragmentTeams.FragmentNotification,ViewPager.OnPageChangeListener,
OnNavigationListener{
...
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
menuSearch = menu.findItem(R.id.menu_search);
mSearchView = new SearchView(this);
menuSearch.setActionView(mSearchView);
menuSearch.setVisible(false);
return true;
}
@Override
public void onPageSelected(int pageNum) {
if(pageNum== 1){
ActionBar actionBar = MyApp.this.getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
menuSearch.setVisible(true);
invalidateOptionsMenu();
}else{
ActionBar actionBar = MyApp.this.getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
menuSearch.setVisible(false);
invalidateOptionsMenu();
}
}
ऊपर करता है (करने के लिए प्रकट करते हुए: मैं गतिविधि के लिए खोज आइकन को जोड़ने के लिए, और फिर बस छुपा या दिखा निर्भर करता है जिस पर viewpager
पेज सक्रिय है, लेकिन निम्न काम नहीं कर रहा ओर से अब कर रहा हूँ) बना सकते हैं और onCreateOptionsMenu
पर आइकन को छिपाने, यह पुन: सक्षम नहीं है जब
pageNum ==1
में जाने किसी को भी मुझे ऐसा क्यों हो रहा हो सकता है के रूप में कुछ जानकारी दे सकते हैं?
त्वरित प्रतिक्रिया के लिए धन्यवाद! यह सही ढंग से काम करता है। हालांकि, जब भी मैं किसी पृष्ठ पर स्वाइप करता हूं और मेनू आइटमों का प्रतिपादन करता हूं, तब भी थोड़ी देर में देरी होती है। मैं स्टॉक Google Apps का अध्ययन करके अनुसरण करने जा रहा हूं, ऐसा लगता है कि वे तुरंत प्रस्तुत करते हैं। – Josh
यदि आप समर्थन लाइब्रेरी का उपयोग करते हैं तो इसके 'supportInvalidateOptionsMenu() ' – IronBlossom
वैसे मैं getCurrentPage() विधि नहीं ढूंढ पा रहा हूं, क्या यह उपयोगकर्ता परिभाषित है या एंड्रॉइड स्वयं ही है? –