2015-06-09 4 views
19

भरने नहीं मैं गाइड Google Play Style Tabs using TabLayout निम्नलिखित ActionBar tabs प्रदर्शित करने के लिए एक TabLayout और ViewPager उपयोग कर रहा हूँ, फिर भी मेरी टैब ActionBar के बाईं ओर squished रहे हैं पर गौर करें:टैब्स पूरे ActionBar


और मैं उन्हें पूरी चौड़ाई के बराबर चौड़ाई के साथ ले जाना चाहता हूं।

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="windowActionBar">true</item> 
    <item name="tabIndicatorColor">#ffff0030</item> 
</style> 
:

<android.support.design.widget.TabLayout 
    android:id="@+id/sliding_tabs" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    style="@style/AppTheme" 
    app:tabMode="scrollable" /> 

यहाँ styles.xml कोड है:

activity_main.xml एक शैली ActionBar दिखाने के लिए बनाया गया था में: मैं गाइड करने के लिए केवल कुछ मामूली परिवर्तन किए हैं

इसके अलावा, मेरे MainActivity अब के बजाय AppCompatActivity फैलाता है।

+0

आपका टैबलाइट गाइडर में दिखाए गए अनुसार एक लीनियरआउट के भीतर एम्बेडेड है? – Gosu

+0

हां यह LinearLayout –

+1

के साथ है यह जोड़ें: 'ऐप: टैबग्राइटी = "भरें" ' – Weel

उत्तर

35

आप TabLayout देख सकते हैं।

GRAVITY_CENTER गुरुत्वाकर्षण TabLayout के केंद्र में टैब को बाहर रखता था।

GRAVITY_FILL ग्रेविटी जितना संभव हो सके टैबलाउट भरने के लिए प्रयुक्त होता था।

MODE_FIXED फिक्स्ड टैब सभी टैब को एक साथ प्रदर्शित करते हैं और टैब के बीच त्वरित पिट्स से लाभ वाली सामग्री के साथ सबसे अच्छा उपयोग किया जाता है।

MODE_SCROLLABLE स्क्रॉल करने योग्य टैब किसी भी पल में टैब का सबसेट प्रदर्शित करते हैं, और इसमें लंबे टैब लेबल और बड़ी संख्या में टैब हो सकते हैं।

इसे अपने कोड या अपने लेआउट xml में सेट करें।

app:tabGravity="center" 
app:tabMode="fixed" 

या

tabLayout.setTabGravity(TabLayout.GRAVITY_CENTER); 
tabLayout.setTabMode(TabLayout.MODE_FIXED);  

आम तौर पर, झटका की तरह कोड का उपयोग कर tabGravity और tabMode की स्थापना के बिना काम कर सकते हैं।

<android.support.design.widget.AppBarLayout 
    android:id="@+id/appbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
     app:layout_scrollFlags="scroll|enterAlways" /> 

    <android.support.design.widget.TabLayout 
     android:id="@+id/tabs" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 

</android.support.design.widget.AppBarLayout> 
+2

मैंने लाइन 'ऐप: टैबमोड = "स्क्रोल करने योग्य" लिया और इस मुद्दे को हल किया। –

+0

मैं भी पुष्टि कर सकता हूं कि ऐप को हटाने: XML फ़ाइल से tabMode = "" सबकुछ हल हो गया है। टैबमोड वैल्यू को बदलना अभी भी टैब को स्क्वायर दिखाई देगा। यह केवल इस विशेषता को शामिल न करके हल किया गया था। – ChallengeAccepted

+0

@ एली ज़ौ एक आकर्षण की तरह काम किया !! धन्यवाद! :) –

3

MainActivity को यह जोड़ने का प्रयास करें:

tabLayout.setTabMode(TabLayout.MODE_FIXED); 
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL); 
1

जोड़ें - अनुप्रयोग: tabGravity = एक्सएमएल में संपत्ति "भरने"।

उदाहरण के लिए -

<android.support.design.widget.TabLayout 
     android:id="@+id/tablayout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:tabGravity="fill" /> 
0

यह कोशिश यह काम करता है

app:tabGravity="fill" 
app:tabMode="fixed" 
26

सरल जवाब है जो मैं यहाँ से मिला है: here

तुम सिर्फ अपने xml कोड में यह डाल:

<android.support.design.widget.TabLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      app:tabMaxWidth="0dp" 
      app:tabGravity="fill" 
      app:tabMode="fixed" /> 
+0

काम किया .. धन्यवाद –

+3

आप इसे मार रहे हैं! टैबमैक्सविड्थ पैरामीटर ने मुझे एक गैर-काम करने वाले डिवाइस को ठीक करने में मदद की। ऐप: tabGravity = "fill" और ऐप: tabMode = "fixed" मेरे डिवाइस में से किसी एक के लिए पर्याप्त नहीं था। – Tobliug

+1

यह मेरे लिए लैंडस्केप मोड में एक समस्या तय करता है (भले ही यह पोर्ट्रेट में ठीक काम कर रहा हो) – TWL

0

माता-पिता से मिलान करने के लिए टैबलाउट चौड़ाई सेट करें

इस तरह।

<TabLayout 
    android:layout_width="match_parent" 
    android:layout_height="60dp"/> 
संबंधित मुद्दे