【问题标题】:Changing styles.xml file requires me to rebuild my project更改styles.xml 文件需要我重建我的项目
【发布时间】:2019-11-25 08:13:55
【问题描述】:

我有一个 android 项目,当我在 Android Studio 中更改 styles.xml 文件时,我每次都需要重新构建我的项目。

如果我不重新构建它,android studio 会部署我的应用程序而不需要视觉更改。

这是正确的行为还是我可以使用一些技巧?

因为在主题调整期间每次更改项目的背景颜色时重新构建有点慢且效率低。

更新:

我原来的styles.xml文件:

<resources xmlns:ns2="http://schemas.android.com/apk/res-auto">
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

    <style name="Theme.NoTitleMine" parent="AppTheme">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>


    <style name="Theme.MyDarkMaterialDesignBar" parent="Theme.MaterialComponents">
        <!--button active style as well as edit text color (selected), also underline color-->
        <item name="colorPrimary">@color/redesign_highlight_color</item>
        <!--edit text activate, spinner click color-->
        <item name="colorSecondary">@color/redesign_highlight_color</item>
        <!--form background color-->
        <item name="android:windowBackground">@color/redesign_background</item>
        <item name="colorSurface">@color/redesign_background</item>
        <item name="disabledMaterialButtonColor">@color/redesign_disabled_button</item>
        <item name="buttonStyle">@style/MaterialButton</item>
        <item name="spinnerStyle">@style/DarkSpinnerStyle</item>
    </style>

    <style name="Theme.MyDarkMaterialDesign" parent="Theme.MaterialComponents.NoActionBar">
        <!--button active style as well as edit text color (selected), also underline color-->
        <item name="colorPrimary">@color/redesign_highlight_color</item>
        <!--edit text activate, spinner click color-->
        <item name="colorSecondary">@color/redesign_highlight_color</item>
        <!--form background color-->
        <item name="android:windowBackground">@color/redesign_background</item>
        <item name="disabledMaterialButtonColor">@color/redesign_disabled_button</item>
        <item name="buttonStyle">@style/MaterialButton</item>
        <item name="spinnerStyle">@style/DarkSpinnerStyle</item>
    </style>

    <style name="DarkSpinnerStyle" parent="Widget.AppCompat.Spinner">
        <item name="android:popupBackground">@color/redesign_background</item>
    </style>

    <style name="MaterialButton" parent="Widget.MaterialComponents.Button">
        <item name="backgroundTint">@color/material_button_style_selector</item>
    </style>

    <style name="My.TextInputLayout.FilledBox.Padding" parent="Widget.MaterialComponents.TextInputLayout.FilledBox">
        <item name="materialThemeOverlay">@style/MyThemeOverlayFilledPadding</item>
    </style>

    <style name="MyThemeOverlayFilledPadding">
        <item name="editTextStyle">@style/MyTextInputEditText_filledBox_padding</item>
    </style>

    <style name="MyTextInputEditText_filledBox_padding" parent="@style/Widget.MaterialComponents.TextInputEditText.FilledBox">
        <!-- left and right padding -->
        <item name="android:paddingStart" ns2:ignore="NewApi">2dp</item>
        <item name="android:paddingEnd" ns2:ignore="NewApi">2dp</item>
        <item name="android:paddingLeft">2dp</item>
        <item name="android:paddingRight">2dp</item>

        <!-- top and bottom padding -->
        <item name="android:paddingTop">24dp</item>
        <item name="android:paddingBottom">8dp</item>
    </style>



    <style name="DesignAppTheme" parent="AppTheme">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/designColorPrimary</item>
        <item name="colorPrimaryDark">@color/designGreyTextColor</item>
        <item name="colorAccent">@color/designColorAccent</item>
        <item name="android:windowBackground">@color/designColorPrimary</item>
        <item name="android:colorForeground">@color/designGreyTextColor</item>
        <item name="android:colorForegroundInverse">@color/designBrightGreyTextColor</item>
        <item name="android:textColor">@color/designBrightGreyTextColor</item>
        <item name="android:color">@color/designBrightGreyTextColor</item>
        <item name="android:textColorPrimary">@color/designBrightGreyTextColor</item>+
        <item name="editTextStyle">@style/DesignEditText</item>
        <item name="buttonStyle">@style/DesignButtonNoBorder</item>
        <item name="colorControlActivated">@color/designColorAccent</item>
        <item name="colorControlHighlight">@color/designColorAccent</item>
        <item name="colorControlNormal">@color/designColorAccent</item>
        <item name="spinnerStyle">@style/MainThemeSpinner</item>
    </style>

    <style name="DesignEditText" parent="Widget.AppCompat.EditText">
        <item name="android:textColor">@color/designBrightGreyTextColor</item>
        <item name="android:textColorHint">@color/designGreyTextColor</item>
        <item name="android:editTextColor">@color/designBrightGreyTextColor</item>
        <item name="colorAccent">@color/designColorAccent</item>
    </style>

    <style name="DesignTextViewBright" parent="android:Widget.TextView">
        <item name="android:textColor">@color/designWhiteColor</item>
    </style>


    <style name="DesignTextViewPale" parent="android:Widget.TextView">
        <item name="android:textColor">@color/designPaleColor</item>
    </style>



    <style name="DesignButtonNoBorder" parent="Widget.AppCompat.Button">
        <item name="android:background">@drawable/round_button_noborder</item>
        <item name="android:textColor">@color/designWhiteColor</item>
    </style>

    <style name="MainThemeSpinner" parent="Widget.AppCompat.Spinner">
        <item name="android:popupBackground">@color/designColorPrimary</item>
    </style>

    <style name="MainThemeSpinnerUnderlined" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:spinnerStyle">@style/holoSpinner</item>
    </style>

    <style name="holoSpinner" parent="Widget.AppCompat.Spinner.Underlined">
        <item name="android:textSize">16sp</item>
        <item name="android:textColor">@color/colorPrimary</item>
        <item name="android:popupBackground">@color/designColorPrimary</item>
    </style>


    <style name="DesignButton" parent="Widget.AppCompat.Button">
        <item name="android:background">@drawable/round_button</item>
        <item name="android:textColor">@color/designWhiteColor</item>
    </style>

    <style name="RedAppLightTheme" parent="AppTheme">
        <item name="colorAccent">@color/redColor</item>
    </style>

    <style name="DesignAppLightTheme" parent="AppTheme">
        <item name="colorPrimary">@color/designColorPrimary</item>
        <item name="buttonStyle">@style/DesignButtonNoBorder</item>
        <item name="colorAccent">@color/designColorAccent</item>
        <item name="imageButtonStyle">@style/DesignButtonNoBorder</item>
        <item name="colorControlActivated">@color/designColorAccent</item>
        <item name="colorControlHighlight">@color/designColorAccent</item>
        <item name="colorControlNormal">@color/designColorAccent</item>
        <item name="editTextStyle">@style/DesignEditTextLight</item>
        <item name="android:actionMenuTextColor">@color/designColorAccent</item>
    </style>


    <style name="DesignEditTextLight" parent="Widget.AppCompat.EditText">
        <item name="colorAccent">@color/designColorAccent</item>
    </style>



    <style name="DesignAppBlackColorTabLightTheme" parent="AppTheme">
        <item name="colorPrimary">@color/designColorPrimary</item>
        <item name="buttonStyle">@style/DesignButtonNoBorder</item>
        <item name="colorAccent">@color/designColorAccent</item>
        <item name="imageButtonStyle">@style/DesignButtonNoBorder</item>
        <item name="android:windowBackground">@color/designColorPrimary</item>
        <item name="android:textColorSecondary">@color/designColorPrimaryGray</item>
        <item name="android:textColorPrimary">@color/colorWhite</item>
        <item name="actionMenuTextColor">@color/designColorAccent</item>
        <item name="android:itemTextAppearance">@style/myCustomMenuTextApearance</item>

    </style>

    <style name="myCustomMenuTextApearance" parent="@android:style/TextAppearance.Widget.IconMenu.Item">
        <item name="android:textColor">@color/designColorPrimary</item>
    </style>


    <style name="DesignAppLightTheme.NoTitleMine" parent="DesignAppLightTheme">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
        <item name="buttonStyle">@style/DesignButtonNoBorder</item>
        <item name="imageButtonStyle">@style/DesignButtonNoBorder</item>
    </style>

    <style name="DesignAppTheme.NoTitleMine" parent="DesignAppTheme">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
        <item name="buttonStyle">@style/DesignButtonNoBorder</item>
        <item name="imageButtonStyle">@style/DesignButtonNoBorder</item>
    </style>


    <style name="CustomDialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert">
        <!--buttons color-->
        <item name="colorAccent">@android:color/holo_orange_dark</item>
        <!--title and message color-->
        <item name="android:textColorPrimary">@android:color/white</item>
        <!--dialog background-->
        <item name="android:windowBackground">@drawable/background_dialog</item>
    </style>

    <style name="DialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert">
        <item name="android:textColor">@color/designColorPrimary</item>
        <item name="colorPrimary">@color/designColorPrimary</item>
        <item name="colorAccent">@color/designColorAccent</item>
        <item name="colorControlActivated">@color/designColorAccent</item>
        <item name="colorControlHighlight">@color/designColorAccent</item>
        <item name="colorControlNormal">@color/designColorAccent</item>
        <item name="android:padding">3dp</item>
    </style>

</resources>

【问题讨论】:

  • 尝试restart 或clear cache and restart Android Studio
  • 试过了,但没有希望:(

标签: android android-studio android-styles


【解决方案1】:

不,如果您对style.xml文件进行更改,则无需每次都重新构建项目。

因此,对于这个问题,请尝试以下任一步骤。

1) 构建-> 1) 清理项目 2)重建项目

现在在不进行重建项目的情况下进行更改和检查,您可以做的另一件事是

2)Files-> 使缓存无效/重新启动。

我认为这两种方法都会对你有所帮助。

【讨论】:

  • 试过了,但我仍然需要在每次 styles.xml 更改后至少运行 Clean Project 以使其显示我的更改。
  • 太长了,这里不能发:(P.S.我会更新我原来的帖子
  • 有多少行?或者您可以单击您的代码快照并在此处发布,以便至少可以识别您的代码的某些行,并且可能有助于获得确切的解决方案。如果可能的话,请添加无论是否。代码行数
  • 已添加到帖子中
  • 顺便说一下,我正在改变微调器的背景颜色:
【解决方案2】:

尝试使缓存无效并重新启动。

如果它不起作用,您应该手动删除所有构建 项目中的文件夹。从每个模块中删除。

【讨论】:

    猜你喜欢
    • 2018-09-20
    • 2015-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多