नोट: यह Android Training वर्ग Implementing Effective Navigation से एक अंश है।
लागू करने के लिए इस (Android 3.0 या इसके बाद के संस्करण में), आप एक ViewPager संयोजन के रूप में ActionBar टैब एपीआई के साथ उपयोग कर सकते हैं।
वर्तमान पृष्ठ को बदलने के बाद, संबंधित टैब का चयन करें। आप अपनी गतिविधि का onCreate()
विधि में एक ViewPager.OnPageChangeListener का उपयोग कर इस व्यवहार की स्थापना कर सकते हैं:
@Override
public void onCreate(Bundle savedInstanceState) {
...
mViewPager.setOnPageChangeListener(
new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
// When swiping between pages, select the
// corresponding tab.
getActionBar().setSelectedNavigationItem(position);
}
});
...
}
और एक टैब का चयन करने पर, ViewPager में इसी पेज पर स्विच करें। ऐसा करने के लिए, जब यह बनाने newTab()
पद्धति का उपयोग करके अपने टैब के लिए एक ActionBar.TabListener जोड़ें:
actionBar.newTab()
...
.setTabListener(new ActionBar.TabListener() {
public void onTabSelected(ActionBar.Tab tab,
FragmentTransaction ft) {
// When the tab is selected, switch to the
// corresponding page in the ViewPager.
mViewPager.setCurrentItem(tab.getPosition());
}
...
}));
स्रोत
2012-04-13 01:58:04
हाय रोमन, कृपया एक उदाहरण तैयार करें जो कई गतिशील रूप से बनाए गए/प्रतिस्थापन योग्य टुकड़े वाले बहु-फलक लेआउट को स्वाइप करने के लिए एंटी एडाप्टर लागू करता है। चुनौतियां: - FragmentManager Fragments जोड़ने के लिए संसाधन आईडी का उपयोग करता है; आईडी पृष्ठों में अनन्य होना चाहिए (यदि आप एक कंटेनर के रूप में एक ViewGroup उदाहरण निर्दिष्ट नहीं कर सकते) - कंटेनर विचारों मौजूद होना चाहिए इससे पहले कि FragmentManager टुकड़े बहाल करने के लिए प्रयास करता है - बनाम उन्मुखीकरण परिवर्तन बग बनाए रखा उदाहरणों # 1: NullPointerException जब चारों ओर FragmentManager बचाने का प्रयास टुकड़ा राज्य; # 2: LoaderInfo.onLoadComplete – user289463
के आस-पास NullPointerException आपको इसे एक नए प्रश्न के रूप में पूछना चाहिए। –
अजीब चीजें होती हैं यदि आप एक्शनबार में मेनू आइकन जोड़ते हैं और इस तरह ViewPager का उपयोग करते हैं ... – Maxim