दिलचस्प पोस्ट
UIPageViewController बाउंस को अक्षम करें सी में एक variadic फ़ंक्शन का आवेश अग्रेषित करें जावा का उपयोग करने वाले प्राचीनतम तरीकों में अधिकतम / न्यूनतम मान ढूँढना विंडोज के लिए अच्छा सी + + जीयूआई लाइब्रेरी Preg_replace_callback के साथ पदावनत preg_replace / e को बदलें क्या const_cast सुरक्षित है? रेलल्स 3 में कोई भी संबद्ध रिकॉर्ड के साथ रिकॉर्ड खोजना चाहते हैं Firebase क्लाउड मेसेजिंग का उपयोग करने के लिए उपकरण को कैसे डिवाइस भेजना है? GitHub रेपो से एक फ़ोल्डर या निर्देशिका डाउनलोड करें किसी अन्य शाखा से सिर्फ एक फाइल कैसे प्राप्त करें पीडीएफ फाइल को HTML लिंक में डाउनलोड करने योग्य कैसे बनाऊं? सिंगल नोड.जेएस परियोजना में मोंगोज़ और कई डाटाबेस साझा पुस्तकालयों को लिंक करते समय प्रतीकों की दृश्यता सीमित करना जावास्क्रिप्ट क्लाइंट-साइड / कैसे गूगल ने इसे किया था वेबसाइट में स्क्रीनशॉट कैसे करें? (एचडीडी तक पहुंचने की आवश्यकता नहीं है) मैं MySQL का उपयोग कर दो तिथियों के बीच कैसे क्वेरी करूं?

नए टूलबार के साथ टैब का उपयोग करें (AppCompat v7-21)

मैं टैब्स के साथ समर्थन एक्शनबार का उपयोग कर रहा हूं और कस्टम एक्शनबेर थीम का प्रयोग कर रहा हूं ( http://jgilfelt.github.io/android-actionbarstylegenerator/ के साथ बनाया गया), टैब दिखाता है, जब उपयोगकर्ता खोज दृश्य का विस्तार करेंगे।

public boolean onMenuItemActionExpand(MenuItem item) { actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); return true; } } 

मैं ActionBar से ToolBar को माइग्रेट किया मेरी एप वास्तव में एपीआई 9 का समर्थन करने की जरूरत है

इसका उपयोग करने का कोई तरीका है ?:

 Toolbar toolbar = (Toolbar) findViewById(R.id.new_actionbar); setSupportActionBar(toolbar); getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

यदि संभव हो, तो मेरी कस्टम थीम या शैली को टूलबार का उपयोग कैसे करें?

दस्तावेज़ीकरण का कहना है कि वह नापसंद है और अन्य प्रकार के नेविगेशन का उपयोग करने का सुझाव देता है। लेकिन मैं एंड्रॉइड के अन्य घटक को एक ही कार्यक्षमता के बारे में नहीं जानता।

कुछ मदद?

वेब के समाधान से एकत्रित समाधान "नए टूलबार के साथ टैब का उपयोग करें (AppCompat v7-21)"

एपीआई 21 विधि setNavigationMode(ActionBar.NAVIGATION_MODE_TABS) से पदावनत किया गया है ।

आप एक अलग पैटर्न का उपयोग कर सकते हैं उदाहरण के लिए आप उसी उदाहरण का उपयोग कर सकते हैं जिसे आप googleio14 में देख सकते हैं।

यह एक SlidingTabLayout का उपयोग करता है जो एक SlidingTabLayout साथ काम करता है।

यहां आप उदाहरण पा सकते हैं (यह आपके एसडीके उदाहरण में है)

यहां आप Google io14 उदाहरण पा सकते हैं:

  • ख़ाका

  • जावा

दिनांक 29/05/2015 को अद्यतन करें

नई डिज़ाइन सहायता लाइब्रेरी के साथ अब आप नए टैबलेट का उपयोग कर सकते हैं।

बस अपने build.gradle इस निर्भरता को जोड़ें

 compile 'com.android.support:design:22.2.0' 

कोड बहुत सरल है:

 TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs); tabLayout.setupWithViewPager(viewPager); 

सामग्री डिजाइनों की कई विशेषताओं को कार्यान्वित करने के लिए आपको उसे एक समन्वयक लेआउट और एक AppBarLayout के भीतर उपयोग करना चाहिए।

कुछ इस तरह:

  <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.AppBarLayout android:layout_height="wrap_content" android:layout_width="match_parent"> <android.support.v7.widget.Toolbar ... app:layout_scrollFlags="scroll|enterAlways"/> <android.support.design.widget.TabLayout ... app:layout_scrollFlags="scroll|enterAlways"/> </android.support.design.widget.AppBarLayout> <android.support.v4.view.ViewPager android:id="@+id/viewpager" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> </android.support.design.widget.CoordinatorLayout> 

हालांकि इस प्रश्न का उत्तर देने में शायद थोड़ा देर हो चुकी है, मुझे एहसास हुआ कि मैंने एक समान प्रश्न पर एक उत्तर लिखा था जो कि डिजाइन सपोर्ट लाइब्रेरी और Google I / O से पहले दोनों का उपयोग किया गया था।

मैंने नीचे आवश्यक भागों को शामिल किया है:


Toolbar साथ एक TabLayout का उपयोग करना आसान हो गया है क्योंकि एंड्रॉइड डिज़ाइन सपोर्ट लाइब्रेरी की घोषणा का मतलब है कि अब हमें कस्टम व्यू क्लासेस डाउनलोड करने की आवश्यकता नहीं है।

Android डेवलपर्स के ब्लॉगस्पॉट पोस्ट से एंड्रॉइड डिज़ाइन सहायता लाइब्रेरी पर :

टैब्स :

टैब के माध्यम से आपके ऐप में अलग-अलग दृश्यों के बीच स्विचिंग सामग्री डिज़ाइन के लिए एक नई अवधारणा नहीं है और यह शीर्ष स्तर के नेविगेशन पैटर्न के रूप में या आपके एप के भीतर सामग्री के विभिन्न समूहों को व्यवस्थित करने के लिए समान रूप से घर पर हैं (कहते हैं, संगीत की विभिन्न शैली)।

डिज़ाइन लायब्रेरी के टैबलायआउट दोनों निर्धारित टैब लागू करता है, जहां दृश्य की चौड़ाई सभी टैब, साथ ही साथ स्क्रॉल करने योग्य टैब के बीच समान रूप से विभाजित होती है, जहां टैब समान आकार नहीं हैं और क्षैतिज रूप से स्क्रॉल कर सकते हैं। टैब को प्रोग्रामेटिक रूप से जोड़ा जा सकता है:

TabLayout tabLayout = ...;
tabLayout.addTab(tabLayout.newTab().setText("Tab 1"));

हालांकि, यदि आप टैब के बीच क्षैतिज पेजिंग के लिए एक दृश्यपेज का उपयोग कर रहे हैं, तो आप अपने पेजर एडाप्टर के GetPageTitle () से सीधे टैब बना सकते हैं और फिर setupWithViewPager() का उपयोग करके दो कनेक्ट कर setupWithViewPager() । यह सुनिश्चित करता है कि टैब चयन ईवेंट, ViewPager को अपडेट करते हैं और पृष्ठ परिवर्तन चयनित टैब को अपडेट करते हैं।


यदि आप डिज़ाइन समर्थन लाइब्रेरी का उपयोग नहीं कर रहे हैं, तो आपको निम्न करने की आवश्यकता होगी:

1. GitHub पर Google के I / O सम्मलेन ऐप से SlidingTabLayout.java और SlidingTabStrip.java फ़ाइलों को डाउनलोड करें। इन विचारों का प्रयोग टैब लेआउट में किया जाएगा, इसलिए मैंने 'दृश्य' नामक मेरी अन्य जावा गतिविधियों के साथ एक फ़ोल्डर बनाया और उन्हें वहां रखा।

2. SlidingTabLayout को शामिल करने के लिए अपना लेआउट संपादित करें:

 <LinearLayout android:orientation="vertical" ... > <!-- This is the Toolbar with the tabs underneath --> <LinearLayout android:orientation="vertical" ... > <include android:id="@+id/my_toolbar" layout="@layout/toolbar" /> <com.mycompany.myapp.SlidingTabLayout android:id="@+id/sliding_tabs" android:background="?attr/colorPrimary" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout> <!-- This is the ViewPager (which you already should have if you have used tabs before) --> <android.support.v4.view.ViewPager android:id="@+id/view_pager" android:layout_width="match_parent" android:layout_height="wrap_content" /> ... </LinearLayout> 

Toolbar ( <include android:id="@+id/detail_toolbar" layout="@layout/toolbar" /> ) को संदर्भित करने वाला रेखा, एक अन्य XML फ़ाइल को संदर्भित कर रहा है, जिसे मैंने Toolbar बनाने में इस्तेमाल किया था

3. SlidingTabLayout.javaSlidingTabLayout.java में SlidingTabLayout.java पैकेज नाम बदलें और उन्हें जहां रखा गया था, उनका इसी स्थान पर SlidingTabStrip.java । मेरे मामले में, मैंने कुछ इसी तरह इस्तेमाल किया: package com.mycompany.myapp.view; इन दोनों फाइलों के लिए आयातों को व्यवस्थित करें और किसी भी आवश्यक में जोड़ दें, जैसा कि आईडीई द्वारा आपके द्वारा उपयोग किया गया है।

4. आपकी Activity (जो AppCompatActivity विस्तार कर रहा था), AppCompatActivity को onCreate विधि में सेटअप करें:

 Toolbar toolbar = (Toolbar) findViewById(R.id.detail_toolbar); setSupportActionBar(toolbar); 

5. ViewPager और SlidingTabLayout पार्ट्स सेटअप करें:

 mViewPager = (ViewPager) findViewById(R.id.view_pager); mViewPager.setAdapter(new ViewPagerAdapter(getSupportFragmentManager())); mSlidingTabLayout = (SlidingTabLayout) findViewById(R.id.sliding_tabs); mSlidingTabLayout.setSelectedIndicatorColors(getResources().getColor(R.color.tab_line)); mSlidingTabLayout.setDistributeEvenly(true); mSlidingTabLayout.setViewPager(mViewPager); 

रंग ' tab_line ' एक रंग था जिसे मैंने color.xml में घोषित किया था जो टैब लाइन सूचक का रंग होगा। यह भी ध्यान रखें कि ऊपर दिए गए चर वैश्विक थे जो मैंने पहले इस गतिविधि में परिभाषित किया था:

 SlidingTabLayout mSlidingTabLayout; ViewPager mViewPager; 

6. अंत में, ViewPagerAdapter सेटअप करें जिसे मैंने पहले कहा था। यह पृष्ठ बदलने के लिए जिम्मेदार होगा कि किस टैब का चयन किया गया था। मैंने निम्नलिखित कोड का इस्तेमाल किया:

 public class ViewPagerAdapter extends FragmentPagerAdapter { public ViewPagerAdapter(FragmentManager fm) { super(fm); } @Override public int getCount() { // Returns the number of tabs return 3; } @Override public Fragment getItem(int position) { // Returns a new instance of the fragment switch (position) { case 0: return new FragmentOne(); case 1: return new FragmentTwo(); case 2: return new FragmentThree(); } return null; } @Override public CharSequence getPageTitle(int position) { Locale l = Locale.getDefault(); switch (position) { case 0: return getString(R.string.title_section1).toUpperCase(l); case 1: return getString(R.string.title_section2).toUpperCase(l); case 2: return getString(R.string.title_section3).toUpperCase(l); } return null; } } 

जैसा कि मैंने उपर्युक्त बताया है, टूलबार के साथ स्लाइडिंग टैब का उपयोग करने के बारे में, मैं इन उत्तरों के लिए और अधिक विवरण एक और प्रश्न पर उपलब्ध है।