代码之家  ›  专栏  ›  技术社区  ›  RedBounce

如何在TabLayout中更改字体大小?

  •  1
  • RedBounce  · 技术社区  · 6 年前

    在我的应用程序中,我想使用 TabLayout 我使用这个库:

    https://github.com/LiushuiXiaoxia/TabLayoutPlus

    但是,文本大小很大,我想更改它。为此,我在中设置了自定义样式 style.xml ,但它不会更改文本大小。

    XML代码:

    <cn.mycommons.tablayoutplus.library.TabLayoutPlus
        android:id="@+id/fullSearch_tabLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/fullSearch_toolbar"
        android:background="@color/colorPrimary"
        android:paddingBottom="@dimen/size2"
        android:paddingLeft="@dimen/size2"
        android:paddingRight="@dimen/size2"
        app:tabIndicatorColor="@color/whiteMe"
        app:tabSelectedTextColor="@color/whiteMe"
        app:tabTextAppearance="@style/allCapsTabLayout_search"
        app:tabTextColor="@color/unSelectTab" />
    
    
    <style name="allCapsTabLayout_search" parent="TextAppearance.Design.Tab">
        <item name="textAllCaps">false</item>
        <item name="android:textAllCaps">false</item>
        <item name="android:fontFamily">sans-serif</item>
        <item name="android:textSize">@dimen/font5</item>
    </style>
    

    如何更改文本大小?

    3 回复  |  直到 6 年前
        1
  •  1
  •   Community prosti    4 年前

    转到

    1>您的库模块

    2>打开文件 “tablayoutplus\u custom\u view.xml”

    3>设置 android:textSize=“20sp” 进入 “android:id=”@+id/tvTabText“”

    以编程方式设置 图书馆 模块输入 “BadgedTabCustomView.java” :

      tvTabText.setTextSize(20);
    

    希望这对你有帮助。

        2
  •  0
  •   Gowthaman M manas.abrol    6 年前

    使用:将父样式用作

    parent=“小部件.设计.表格布局”

    <style name="MyCustomTabLayout" parent="Widget.Design.TabLayout">
        <!--<item name="tabMaxWidth">@dimen/tab_max_width</item>-->
        <item name="tabIndicatorHeight">2dp</item>
        <item name="tabPaddingStart">10dp</item>
        <item name="tabPaddingEnd">10dp</item>
        <item name="tabBackground">@color/grey_200</item>
        <item name="tabTextAppearance">@style/MyCustomTabTextAppearance</item>
        <item name="tabSelectedTextColor">@color/appred</item>
    </style>
    
    <style name="MyCustomTabTextAppearance" parent="TextAppearance.Design.Tab">
        <item name="android:textSize">20sp</item>
        <item name="android:textColor">@color/grey_800</item>
        <item name="textAllCaps">true</item>
    </style>
    

    然后在表格布局中应用您的样式:

    <cn.mycommons.tablayoutplus.library.TabLayoutPlus
      //
     style="@style/MyCustomTabLayout"
      //  />
    

    (或) 以编程方式使用此更改

     for (int i = 0; i < tabLayout.getTabCount(); i++) {
            BadgedTabCustomView customView = tabLayout.getTabCustomViewAt(i);
            if (customView != null) {
                customView.setTabText("Tab" + (i + 1));
                customView.setTabCount(i);
                customView.setTextSize(20);
            }
        }
    
        3
  •  0
  •   Sagar Jethva    6 年前

    @我希望下面的方法对你有用。 style 属性在您的 TabLayout 因为您使用了自定义选项卡视图。

      <cn.mycommons.tablayoutplus.library.TabLayoutPlus
        android:id="@+id/tabLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    

    打开 TabLayoutPlus.java 文件并在此类中查找以下方法

     private BadgedTabCustomView initTab(TabLayout.Tab tab) {
        BadgedTabCustomView customView = new BadgedTabCustomView(getContext());
        customView.tvTabText.setTextColor(getTabTextColors());
    
        //add your tab font size here as you want
        customView.tvTabText.setTextSize(20);
    
        customView.tvTabSubText.setTextColor(getTabTextColors());
        if (subTextSize > 0) {
            customView.tvTabSubText.setTextSize(TypedValue.COMPLEX_UNIT_PX, subTextSize);
        }
    
        customView.tvTabCount.setTextColor(countTextColor);
        if (countTextSize > 0) {
            customView.tvTabCount.setTextSize(TypedValue.COMPLEX_UNIT_PX, countTextSize);
        }
        customView.tvTabCount.setBackgroundDrawable(countTextBackground);
        customView.setTabText(tab.getText());
    
        tab.setCustomView(customView);
    
        return customView;
    }
    

    在这个方法中,只需在下面一行

    customView.tvTabText.setTextSize(20); //20是字体大小