LayoutInflater 与 ContextThemeWrapper 并不总是主题
LayoutInflater with ContextThemeWrapper not always themed
我正在尝试使用不同于应用程序默认主题的布局来扩充布局,并且这样做:
final View view = context.getLayoutInflater().cloneInContext(new ContextThemeWrapper(context, getThemeForView())).inflate(R.layout.some_layout, root, false);
第一次完成视图没有我想要的主题,而是主应用程序主题。几分钟后重新创建视图时,它具有正确的主题。为什么第一次创建视图时主题不同?
编辑:
我无法设置 android:theme
因为我动态获取主题。
我第一次创建视图是在 Activity.onCreate
。通过一些测试,我发现如果我在 Activity.onWindowFocusChanged(boolean hasFocus)
中创建视图,而 hasFocus == true
工作正常。我仍然不确定为什么。
您可以添加
android:theme="@style/some_theme"
到清单文件中的 activity。
我正在尝试使用不同于应用程序默认主题的布局来扩充布局,并且这样做:
final View view = context.getLayoutInflater().cloneInContext(new ContextThemeWrapper(context, getThemeForView())).inflate(R.layout.some_layout, root, false);
第一次完成视图没有我想要的主题,而是主应用程序主题。几分钟后重新创建视图时,它具有正确的主题。为什么第一次创建视图时主题不同?
编辑:
我无法设置 android:theme
因为我动态获取主题。
我第一次创建视图是在 Activity.onCreate
。通过一些测试,我发现如果我在 Activity.onWindowFocusChanged(boolean hasFocus)
中创建视图,而 hasFocus == true
工作正常。我仍然不确定为什么。
您可以添加
android:theme="@style/some_theme"
到清单文件中的 activity。