我正在尝试使用与应用程序默认主题不同的主题来 inflated layout ,并这样做:
final View view = context.getLayoutInflater().cloneInContext(new ContextThemeWrapper(context, getThemeForView())).inflate(R.layout.some_layout, root, false);
第一次完成 View 没有我想要的主题,但有主应用程序主题。几分钟后重新创建 View 时,它具有正确的主题。为什么第一次创建 View 时主题不同?
编辑:
我无法设置 android:theme
因为我以动态方式获取主题。
最佳答案
我首先在Activity.onCreate
中创建了 View 。通过一些测试,我发现如果我在 Activity.onWindowFocusChanged(boolean hasFocus)
中创建 View ,当 hasFocus == true
时效果很好。我还是不知道为什么。
关于java - 带有 ContextThemeWrapper 的 LayoutInflater 并不总是主题化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31636875/