Android-在特定活动中更改主题

use*_*702 3 android android-theme android-switch

我的应用程序的基本主题是:

<style name="AppTheme" parent="@android:style/Theme.Holo.Light">
        <item name="android:actionBarStyle">@style/MyActionBar</item>
        <item name="android:actionBarTabTextStyle">@style/MyActionBarTabText</item>
        <item name="android:actionBarTabBarStyle">@style/MyActionBarTabBar</item>
        <item name="android:actionBarTabStyle">@style/MyActionBarTabView</item>
        <item name="android:popupMenuStyle">@style/MyMenu</item>
        <!--<item name="android:actionBarStyle">@style/window_action_bar_style</item>-->
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:windowContentOverlay">@null</item>
    </style>
Run Code Online (Sandbox Code Playgroud)

我想将这个主题应用于一项活动.

<style name="AppTheme" parent="Theme.AppCompat.Light">
</style>
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时,我无法访问该活动中的SwitchCompat小部件:

<android.support.v7.widget.SwitchCompat/>
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?任何建议或解决方案将是最受欢迎的.当我尝试覆盖特定活动中的基本主题并尝试访问SwitchCompat小部件时,会发生此问题.我的项目已经非常大,我可以更改整个应用程序的基本主题,因为我将不得不对ActionBars和其他视图进行更改.怎么解决这个问题?

Kab*_*bir 11

只需在AndroidManifest.xml中使用这样的自定义主题即可

<activity
    android:name=".SignupActivity"
    android:label="@string/title_activity_signup"
    android:theme="@style/SignupTheme">
</activity>
Run Code Online (Sandbox Code Playgroud)