android中标签页的自定义主题

时间:2017-04-13 05:56:24

标签: android xamarin android-theme tabbedpage

enter image description here

我在Xamarin中使用VS2015表格制作了一款Android应用。我添加了TabbedPage,但我的TabbedPage's操作栏存在问题。

如果tabbedPage有很多ContentPage,则标题文字不是1 line,我无法更改标签heightwidthcolor(字体,背景)和scrollable标签。

我知道问题是theme,但我不知道如何自定义主题。

以下是我的主题:

    <?xml version="1.0" encoding="UTF-8"?>
    <resources>
        <style name="MyTheme" parent="MyTheme.Base">
        </style>
        <!-- Base theme applied no matter what API -->
        <style name="MyTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
            <!--If you are using revision 22.1 please use just windowNoTitle. Without android:-->
            <item name="windowNoTitle">true</item>
            <!--We will be using the toolbar so no need to show ActionBar-->
            <item name="windowActionBar">false</item>
            <!-- Set theme colors from http://www.google.com/design/spec/style/color.html#color-color-palette-->
            <!-- colorPrimary is used for the default action bar background -->
            <item name="colorPrimary">#2196F3</item>
            <!-- colorPrimaryDark is used for the status bar -->
            <item name="colorPrimaryDark">#1976D2</item>
            <!-- colorAccent is used as the default value for colorControlActivated
             which is used to tint widgets -->
            <item name="colorAccent">#FF4081</item>
            <!-- You can also set colorControlNormal, colorControlActivated
             colorControlHighlight and colorSwitchThumbNormal. -->
            <item name="windowActionModeOverlay">true</item>
            <item name="android:datePickerDialogTheme">@style/AppCompatDialogStyle</item>
        </style>
        <style name="AppCompatDialogStyle" parent="Theme.AppCompat.Light.Dialog">
            <item name="colorAccent">#FF4081</item>
        </style>
    </resources>

现在,我的应用需要AppCompact主题,所以我不知道如何修复它。

2 个答案:

答案 0 :(得分:1)

尝试使用"scrollable"标签模式。

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

这里我使用了自定义TabLayout样式。以下是MyCustomTabLayout样式。将此样式定义到values/styles.xml文件中。

<强>值/ styles.xml

<!-- TabLayout Style -->
<style name="MyCustomTabLayout" parent="Widget.Design.TabLayout">
    <item name="tabIndicatorColor">#FFFFFF</item>
    <item name="tabIndicatorHeight">3dp</item>
    <item name="tabBackground">?attr/selectableItemBackground</item>
    <item name="tabTextAppearance">@style/MyCustomTabTextAppearance</item>
    <item name="tabSelectedTextColor">#FFFFFF</item>
</style>

希望这会有所帮助〜

答案 1 :(得分:0)

如果您的样式主题是AppCompact(请参阅清单文件),那么您的类应该扩展AppCompactActivity类,否则会抛出错误。 我认为viewPager使用起来很舒服。

查看此代码我如何在ViewPager中更改textcolor,height,tabindicator颜色

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

        <android.support.design.widget.TabLayout
            android:id="@+id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#499b97"
            app:tabGravity="fill"
            app:tabIndicatorColor="#cfc31b"
            app:tabIndicatorHeight="6dp"
            app:tabMode="fixed" />
    </android.support.design.widget.AppBarLayout>

<style name="MyTrasparent" parent="@style/Theme.AppCompat.Light.NoActionBar">
    <item name="android:background">@android:color/transparent</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:colorBackground">@android:color/transparent</item>
    <item name="android:windowBackground">@color/soloColor</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowAnimationStyle">@android:style/Animation</item>