【问题标题】:Change theme dynamically for multiple view - Android为多个视图动态更改主题 - Android
【发布时间】:2018-06-24 22:35:39
【问题描述】:

我正在尝试在应用设备离线时更改主题。但是要实现更改背景颜色并没有帮助,我需要更改整个视图和文本颜色。但是为此,使用 FindViewById 获取所有视图并不是实现这一目标的有效方法,因为我对 Activity 有很多视图并且我尝试使用主题

<item name="android:textColor">@android:color/black</item> <item name="android:windowBackground">@android:color/white</item>

但由于它只显示一种颜色的 TextView,我无法使用此方法进行活动,因为它有多种颜色,并且必须在创建活动之前更改主题。

请提供支持多色视图改变主题的解决方案

【问题讨论】:

    标签: android xml android-layout android-theme


    【解决方案1】:
    public class Utils {
        private static int sTheme;
    
        public final static int THEME_MATERIAL_LIGHT = 0;
        public final static int THEME_YOUR_CUSTOM_THEME = 1;
    
        public static void changeToTheme(Activity activity, int theme) {
            sTheme = theme;
            activity.finish();
            activity.startActivity(new Intent(activity, activity.getClass()));
            activity.overridePendingTransition(android.R.anim.fade_in,
                    android.R.anim.fade_out);
        }
    
        public static void onActivityCreateSetTheme(Activity activity) {
            switch (sTheme) {
            default:
            case THEME_MATERIAL_LIGHT:
                activity.setTheme(R.style.Theme_Material_Light);
                break;
            case THEME_YOUR_CUSTOM_THEME:
                activity.setTheme(R.style.Theme_YOUR_CUSTOM_THEME);
                break;
            }
        }
    }
    

    在您的活动中:

     @Override // Any Activity
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                // MUST BE SET BEFORE setContentView
                Utils.onActivityCreateSetTheme(this);
                // AFTER SETTING THEME
                setContentView(R.layout.activity_theme);
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-31
      相关资源
      最近更新 更多