我无法更改设计库tablayout(android.support.design.widget.TabLayout)选项卡的文本大小。
我设法通过在TabLayout
中指定tabTextAppearance来更改它app:tabTextAppearance="@style/MyTabLayoutTextAppearance"
以下风格
<style name="MyTabLayoutTextAppearance" parent="TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse">
<item name="android:textSize">14sp</item>
</style>
但我有两个副作用:
1)我丢失了所选标签的强调色
2)标签文本不再大写。
答案 0 :(得分:148)
<style name="MineCustomTabText" parent="TextAppearance.Design.Tab">
<item name="android:textSize">16sp</item>
</style>
使用TabLayout
就像这样
<android.support.design.widget.TabLayout
app:tabTextAppearance="@style/MineCustomTabText"
...
/>
答案 1 :(得分:39)
继续使用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"
希望这有帮助。
答案 2 :(得分:21)
致力于api 22&amp; 23 制作这种风格:
<style name="TabLayoutStyle" parent="Base.Widget.Design.TabLayout">
<item name="android:textSize">12sp</item>
<item name="android:textAllCaps">true</item>
</style>
并将其应用于您的tablayout:
<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"/>
答案 3 :(得分:13)
我有类似的问题和类似的解决方案:
1)尺寸
在xml中你有TabLayout,
x:Key="LinkButton"
然后是风格,
<android.support.design.widget.TabLayout
...
app:tabTextAppearance="@style/CustomTextStyle"
...
/>
如果你不希望大写的字符在&#34; android:textAllCaps&#34;
中输入false2)选定或未选定标签的文字颜色,
<style name="CustomTextStyle" parent="@android:style/TextAppearance.Widget.TabWidget">
<item name="android:textSize">16sp</item>
<item name="android:textAllCaps">true</item>
</style>
然后在res / color / tab_selector.xml
中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));
}
答案 4 :(得分:10)
尝试这个....它为我工作....
在我的layout.xml中我使用过这样的东西......
<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中,我使用了像代码的和平......
<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>
我希望它对你有用.....
答案 5 :(得分:8)
2
此代码适用于我使用tablayout。 它会改变字体的大小,也会改变字体样式。
这也有助于你们查看此链接
https://stackoverflow.com/a/43156384/5973946
此代码适用于Tablayout更改文本颜色,类型面(字体样式)以及文本大小。
答案 6 :(得分:8)
执行以下操作。
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" />
答案 7 :(得分:0)
我正在使用Android Pie,但似乎没有任何效果,因此我使用了app: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" />
答案 8 :(得分:0)
XML 文件的值
<style name="tab">
<item name="android:textSize">@dimen/_10ssp</item>
<item name="android:textColor">#FFFFFF</item>
</style>
标签布局
<com.google.android.material.tabs.TabLayout
android:layout_width="match_parent"
android:layout_height="@dimen/_27sdp"
android:layout_marginLeft="@dimen/_10sdp"
android:layout_marginRight="@dimen/_10sdp"
app:layout_constraintEnd_toEndOf="parent"
app:tabTextAppearance="@style/tab"
app:tabGravity="fill"
android:layout_marginTop="@dimen/_10sdp"
app:layout_constraintStart_toStartOf="parent"
>
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TAB 1"
android:scrollbarSize="@dimen/_4sdp"
/>
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scrollbarSize="@dimen/_6sdp"
android:text="TAB 2" />
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scrollbarSize="@dimen/_4sdp"
android:text="TAB 3" />
</com.google.android.material.tabs.TabLayout>
答案 9 :(得分:0)
template <std::size_t userInput>
void Test ()
{
using typeArray = std::tuple<__int32, __int16, __int8>;
CallMe<std::tuple_element_t<userInput, typeArray>>(paramToUse);
}
<块引用>
这是我的解决方案