Android XML:设置TabHost的样式为小写文本

我正在为我的Android应用程序实现标签布局。我尝试将每个标签设置为textAllCaps设置为falseapp:tabTextAppearance="@style/MyCustomTextAppearance")的某种样式,但是这对我不起作用。这个问题不是重复的,因为我不使用一个TabLayout,而是使用TabHost。下面是我的代码:

styles.xml 中的样式:

<style name="MyCustomTextAppearance" parent="TextAppearance.Design.Tab">
    <item name="textAllCaps">false</item>
</style>

content_main.xml

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#ffffff"
        tools:context=".Mainactivity"
        app:tabTextAppearance="@style/MyCustomTextAppearance"
        tools:showIn="@layout/activity_main">

        <TabHost
            android:id="@+id/tab_host"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:background="#ffffff"
            app:tabTextAppearance="@style/MyCustomTextAppearance"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent">

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                app:tabTextAppearance="@style/MyCustomTextAppearance"
                android:orientation="vertical">

                <FrameLayout
                    android:id="@android:id/tabcontent"
                    app:tabTextAppearance="@style/MyCustomTextAppearance"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content">

                    <LinearLayout
                        android:id="@+id/tab1"
                        app:tabTextAppearance="@style/MyCustomTextAppearance"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:orientation="horizontal" />

                    <LinearLayout
                        android:id="@+id/tab2"
                        app:tabTextAppearance="@style/MyCustomTextAppearance"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:orientation="horizontal" />

                    <LinearLayout
                        android:id="@+id/tab3"
                        app:tabTextAppearance="@style/MyCustomTextAppearance"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:orientation="horizontal" />
                </FrameLayout>

                <tabwidget
                    android:id="@android:id/tabs"
                    app:tabTextAppearance="@style/MyCustomTextAppearance"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content" />
            </LinearLayout>
        </TabHost>


        <com.anychart.AnyChartView
            android:id="@+id/piechart"
            android:layout_width="match_parent"
            android:layout_height="200dp"
            app:layout_constraintTop_toBottomOf="@+id/tab_host"
            />

    </androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>

以下是我的应用程序的外观(选项卡的文本仍大写):

Android XML:设置TabHost的样式为小写文本

jscj5678 回答:Android XML:设置TabHost的样式为小写文本

在tabLayout上应用以下样式

 app:tabTextAppearance="@android:style/TextAppearance.Widget.TabWidget"
,

使用它并更改与颜色相同的样式

for (int i = 0; i < tabHost.getTabWidget().getChildCount(); i++) {
            View v = tabHost.getTabWidget().getChildAt(i);
            v.setBackgroundResource(R.drawable.tabs);

            TextView tv = (TextView) tabHost.getTabWidget().getChildAt(i).findViewById(android.R.id.title);
            tv.setTextColor(getResources().getColor(R.color.white));
}
,
for (int i = 0; i < tabhost.getTabWidget().getChildCount(); i++) {
            View v = tabhost.getTabWidget().getChildAt(i);

            TextView tv = (TextView) tabhost.getTabWidget().getChildAt(i).findViewById(android.R.id.title);
  
            tv.setAllCaps(false);
}
本文链接:https://www.f2er.com/3154694.html

大家都在问