Java 带有ContextThemeWrapper的LayoutFlater不总是主题化
我正在尝试使用不同于app default的主题来膨胀布局,并按如下方式进行:Java 带有ContextThemeWrapper的LayoutFlater不总是主题化,java,android,android-context,android-theme,layout-inflater,Java,Android,Android Context,Android Theme,Layout Inflater,我正在尝试使用不同于app default的主题来膨胀布局,并按如下方式进行: final View view = context.getLayoutInflater().cloneInContext(new ContextThemeWrapper(context, getThemeForView())).inflate(R.layout.some_layout, root, false); “第一次完成”视图没有我想要的主题,但有主应用程序主题。当视图在几分钟后重新创建时,它具有正确的主题。
final View view = context.getLayoutInflater().cloneInContext(new ContextThemeWrapper(context, getThemeForView())).inflate(R.layout.some_layout, root, false);
“第一次完成”视图没有我想要的主题,但有主应用程序主题。当视图在几分钟后重新创建时,它具有正确的主题。为什么第一次创建视图时主题不同
编辑:
我无法设置
android:theme
,因为我是通过友好方式获取主题的。我第一次在活动中创建视图。onCreate
。通过一些测试,我发现如果我在Activity.onWindowFocusChanged(布尔hasFocus)
中创建视图,当hasFocus==true
工作正常时。我仍然不知道为什么。您可以添加
android:theme="@style/some_theme"
到清单文件中的活动。我简化了代码,主题是“以友好方式获取”,不过还是要谢谢你。