【问题标题】:How can I get a theme parent id from a theme id?如何从主题 ID 中获取主题父 ID?
【发布时间】:2020-03-09 14:30:35
【问题描述】:

在以下代码中,我检索应用程序的主题 ID/名称。有没有办法使用它来获取样式父级?

val context = [ApplicationContext].getContext()
val packageName = context.packageName
val packageInfo = context.packageManager.getPackageInfo(packageName, PackageManager.GET_META_DATA)
val theme = packageInfo.applicationInfo.theme

val themeResourceEntryName = context.resources.getResourceEntryName(theme)

为了澄清,我的主题名称可能是“someTheme”,但我对正在扩展的内容感兴趣 - AppCompat 或 MaterialComponents 等。

【问题讨论】:

    标签: android themes android-theme android-styles


    【解决方案1】:

    您可以使用获取主题父类

    Theme myThemeParent = appContext.getTheme().getClass().getSuperclass();
    

    代码是用java写的,但我想你用kotlin重写它不会有问题

    【讨论】:

    • val myThemeParent: Class<in Resources.Theme>? = [ApplicationContext].theme.javaClass.superclass 返回 java.lang.Object。我错过了什么吗?
    • 如果你带来主题。不会出错吗?
    • 它不允许我直接转换为 Theme,只能转换为 Class
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-06
    • 2011-12-31
    • 1970-01-01
    • 1970-01-01
    • 2020-01-19
    • 1970-01-01
    • 2022-08-04
    相关资源
    最近更新 更多