Android डिज़ाइन का टेक्स्ट आकार टैबलैट टैब


95

मुझे डिज़ाइन लाइब्रेरी टैबलेआउट (android.support.design.widget.TabLoutout) के टैब का पाठ आकार बदलने में कठिनाइयाँ होती हैं।

मैं TabLayout में tabTextAppearance असाइन करके इसे बदलने में कामयाब रहा

app:tabTextAppearance="@style/MyTabLayoutTextAppearance"

निम्नलिखित शैली

<style name="MyTabLayoutTextAppearance" parent="TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse">
    <item name="android:textSize">14sp</item>
</style>

लेकिन मेरे 2 दुष्प्रभाव हैं:

1) मैंने चयनित टैब का उच्चारण रंग खो दिया है

2) टैब टेक्स्ट को और अधिक कैपिटल नहीं किया गया है।

जवाबों:


186
<style name="MineCustomTabText" parent="TextAppearance.Design.Tab">
    <item name="android:textSize">16sp</item>
</style>

उपयोग TabLayoutइस तरह से है

<android.support.design.widget.TabLayout
            app:tabTextAppearance="@style/MineCustomTabText"
            ...
            />

अच्छा कर रहा है। मैं समर्थन का उपयोग कर रहा हूँ 25.1.0 lib।
सूफियान

समर्थन पुस्तकालय पर काम करता है 25.3.1
लुइस

शानदार thax भाई तुम मेरा समय बचाओ ,,, इसके काम पर काम 25.1.0
कुणाल धारिया

@ सूफियान, यह मेरे लिए काम नहीं कर रहा है और मैं आपके (25.1.0) के समान समर्थन संस्करण का उपयोग कर रहा हूं। कोई विचार क्यों?
सैम

2
यदि आपका टैब टेक्स्ट मल्टीलाइन है। तब टैक्स्टआउट एक अलग क्षेत्र का उपयोग करके ग्रंथों के आकार को सेट करता है। कृपया समाधान के लिए यहां मेरे उत्तर की जांच करें: stackoverflow.com/a/48797329/700693
Evren Ozturk

46

जैसा कि आपने किया था लेकिन tabTextAppearance का उपयोग करते हुए जाएं

1) कैपिटल लेटर साइड इफ़ेक्ट को ठीक करने के लिए अपनी शैली में textAllCap जोड़ें:

<style name="MyTabLayoutTextAppearance" parent="TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse">
    <item name="android:textSize">14sp</item>
    <item name="android:textAllCaps">true</item>
</style>

2) चयनित टैब रंग साइड इफेक्ट को ठीक करने के लिए TabLayout xml में निम्नलिखित लाइब्रेरी विशेषताएँ जोड़ें:

app:tabSelectedTextColor="@color/color1"
app:tabTextColor="@color/color2" 

उम्मीद है की यह मदद करेगा।


यह अब एक आकर्षण की तरह काम करता है। आप शीघ्र उत्तर के लिए धन्यवाद u2gilles
मल्को जुएल

@ u2gilles मैंने टैब में कस्टम लेआउट का उपयोग किया है जो कि 2 पाठों के साथ रैखिक रेखाचित्र है लेकिन मैं टैब चयन पर केवल एक टेक्स्टव्यू रंग बदलना चाहता हूं?
एरुम

1
यदि आप <item name = "android: textAllCaps"> false </ item> सेट करना चाहते हैं, तो यहाँ twos के अलावा एक और स्ट्रिंग होना चाहिए: <आइटम का नाम = "textAllCaps"> false </ item>
CodeToLife

24

Api 22 और 23 पर काम करें इस शैली को बनाएं:

<style name="TabLayoutStyle" parent="Base.Widget.Design.TabLayout">
    <item name="android:textSize">12sp</item>
    <item name="android:textAllCaps">true</item>
</style>

और इसे अपने टैबलेआउट पर लागू करें:

<android.support.design.widget.TabLayout
            android:id="@+id/contentTabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:background="@drawable/list_gray_border"
            app:tabTextAppearance="@style/TabLayoutStyle"
            app:tabSelectedTextColor="@color/colorPrimaryDark"
            app:tabTextColor="@color/colorGrey"
            app:tabMode="fixed"
            app:tabGravity="fill"/>

21

निम्नानुसार करें।

1. स्टाइल को XML में जोड़ें

    <style name="MyTabLayoutTextAppearance" parent="TextAppearance.Design.Tab">
        <item name="android:textSize">14sp</item>
    </style>

2. स्टाइल लागू करें

TabLayout युक्त लेआउट ढूंढें और शैली जोड़ें। जोड़ा लाइन बोल्ड है।

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

17

नीचे बताए गए स्निप को आज़माएं, यह मेरे लिए भी काम करता है।

मेरे लेआउट में, xmlजहां मेरे पास है TabLayout, TabLayoutनीचे की तरह शैली जोड़ दी है:

<android.support.design.widget.TabLayout
    android:id="@+id/tab_layout"
    style="@style/MyCustomTabLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:tabGravity="fill"
    app:tabMode="fixed" />

और style.xmlमैंने अपने लेआउट xml में उपयोग की जाने वाली शैली को परिभाषित किया है, नीचे दी गई शैलियों के लिए चेक कोड:

<style name="MyCustomTabLayout" parent="Widget.Design.TabLayout">
    <item name="android:background">YOUR BACKGROUND COLOR</item>
    <item name="tabTextAppearance">@style/MyCustomTabText</item>
    <item name="tabSelectedTextColor">SELECTED TAB TEXT COLOR</item>
    <item name="tabIndicatorColor">SELECTED TAB INDICATOR COLOR</item>
</style>

<style name="MyCustomTabText" parent="TextAppearance.AppCompat.Button">
    <item name="android:textSize">YOUR TEXT SIZE</item>
    <item name="android:textStyle">bold</item>
    <item name="android:textColor">@android:color/white</item>
</style>

मुझे उम्मीद है कि यह आपके लिए काम करेगा .....


15

मेरे पास समान समस्या और समान संकल्प है:

1) का आकार

xml में आपके पास TabLayout है,

        <android.support.design.widget.TabLayout
            ...
            app:tabTextAppearance="@style/CustomTextStyle"
            ...
        />

फिर शैली में,

        <style name="CustomTextStyle" parent="@android:style/TextAppearance.Widget.TabWidget">
           <item name="android:textSize">16sp</item>
           <item name="android:textAllCaps">true</item>
        </style>

यदि आप नहीं चाहते कि अपरकेस में वर्ण "android: textAllCaps" में गलत हैं

2) चयनित या अचयनित टैब का पाठ रंग,

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

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        tabLayout.setTabTextColors(getResources().getColorStateList(R.color.tab_selector,null));
    } else {
        tabLayout.setTabTextColors(getResources().getColorStateList(R.color.tab_selector));
    }

फिर Res / color / tab_selector.xml में

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/white" android:state_selected="true" />
<item android:color="@color/white" />


8
TabLayout  tab_layout = (TabLayout)findViewById(R.id.tab_Layout_);

private void changeTabsFont() {
    Typeface font = Typeface.createFromAsset(getActivity().getAssets(), "fonts/"+ Constants.FontStyle);
    ViewGroup vg = (ViewGroup) tab_layout.getChildAt(0);
    int tabsCount = vg.getChildCount();
    for (int j = 0; j < tabsCount; j++) {
        ViewGroup vgTab = (ViewGroup) vg.getChildAt(j);
        int tabChildsCount = vgTab.getChildCount();
        for (int i = 0; i < tabChildsCount; i++) {
            View tabViewChild = vgTab.getChildAt(i);
            if (tabViewChild instanceof TextView) {
                ((TextView) tabViewChild).setTypeface(font);
                ((TextView) tabViewChild).setTextSize(15);

            }
        }
    }
}

यह कोड टैबलेआउट के उपयोग से मेरे लिए काम करता है। यह फोंट का आकार बदल देगा और फॉन्ट स्टाइल भी बदल देगा।

यह भी आप लोगों को इस लिंक की जाँच करने में मदद करेगा

https://stackoverflow.com/a/43156384/5973946

यह कोड टैबलॉउट चेंज टेक्स्ट कलर, टाइप फेस (फॉन्ट स्टाइल) और टेक्स्ट साइज के लिए भी काम करता है।


0

मैं एंड्रॉइड पाई का उपयोग कर रहा था और काम करने के लिए कुछ भी नहीं लग रहा था इसलिए मैंने ऐप के साथ खेला: tabTextAppearance विशेषता। मुझे पता है कि यह सही जवाब नहीं है, लेकिन किसी की मदद कर सकता है।

<android.support.design.widget.TabLayout
        android:id="@+id/tabs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:tabMode="fixed"
        app:tabTextAppearance="@style/TextAppearance.AppCompat.Caption" />
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.