“您需要将 Theme.AppCompat 主题(或后代)与设计库一起使用”错误

2024-03-03

每次我都会收到“您需要将 Theme.AppCompat 主题(或后代)与设计库一起使用”错误,即使我显然使用的是 AppCompat 主题(后代主题)。

依赖项:

compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.android.support:design:23.3.0'
compile 'com.android.support:support-v4:23.3.0'

layout:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/tooltip_container"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:visibility="gone">

    <ImageView
        android:id="@+id/tooltip_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"/>

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab_delete_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_anchor="@id/tooltip_image"
        app:layout_anchorGravity="top|end"/>

</android.support.design.widget.CoordinatorLayout>

theme:

<style name="TranslucentAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:backgroundDimEnabled">false</item>
</style>

显现:

<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/TranslucentAppTheme">
        <activity android:name=".MainActivity">
            (...)
</activity>

我正在膨胀里面的布局service:

tooltipContainer = (CoordinatorLayout) LayoutInflater.from(this).inflate(R.layout.tooltip_layout, null);

创建一个ContextThemeWrapper包裹Service's Context与您的自定义主题,并获得LayoutInflater从那。

ContextThemeWrapper ctx = new ContextThemeWrapper(this, R.style.TranslucentAppTheme);
tooltipContainer = (CoordinatorLayout) LayoutInflater.from(ctx)
    .inflate(R.layout.tooltip_layout, null);

ContextThemeWrapper http://developer.android.com/reference/android/view/ContextThemeWrapper.html修改给定的Context的主题与您在构造函数中指定的主题。自从一个Service并没有真正的主题,它只是将你的主题附加到Service's Context,那么LayoutInflater有适当的主题来扩充图书馆Views.


或者,如果在布局 XML 中处理它更合适或更少涉及,您可以设置一个android:theme根上的属性<ViewGroup>,这只会导致LayoutInflaterContext内部包裹。例如:

<android.support.design.widget.CoordinatorLayout
    ...
    android:theme="@style/TranslucentAppTheme">

但是,这仅适用于该平台LayoutInflater从 Lollipop(API 级别 21)开始。 support/androidx 库能够在旧版本上处理该属性,但它的设置方式旨在用于Activity仅类,在这种情况下,自己进行包装可能会更简单。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“您需要将 Theme.AppCompat 主题(或后代)与设计库一起使用”错误 的相关文章

  • 错误:连接超时:连接

    我将Android Studio 1 5 1的gradle版本从1 5更改为2 10 然后单击立即同步 错误图像 https i stack imgur com E3MVE png但出现以下错误 错误 连接超时 连接 如果您使用 HTTP
  • 如何传递对象的数组列表来填充每个部分标题文本及其内容?

    我在用粘性网格标题 https github com TonicArtos StickyGridHeaders对于带有部分的 GridView 这个库正在使用R array countries填充GridView使用提供的数据并从传递的字符
  • 注意:android.support.v4.text.ICUCompatIcs:找不到动态引用的类 libcore.icu.ICU

    我今天开始收到最新 Android Build Tools ABT v19 0 3 的消息 乍一看 我认为这可能是 ABT 的问题 然而 仔细调查后发现 这条消息 android support v4 text ICUCompatIcs c
  • 使用 Android SDK 随机访问文件 > 2GB

    谁能告诉我如何使用 android SDK 随机访问超过 2GB 的文件 我试图寻找 gt 2147483647 的位置并得到异常 值对于定义的数据类型来说太大 这很奇怪 因为查找命令的参数是 long 类型 详细内容请参见代码示例 Ran
  • 如何向我的 Android 应用程序授予系统权限?

    我正在实现一个从设备上静默卸载应用程序的演示 在 adb shell 中 我可以使用 pm uninstall packagename 来执行任务 但是当我编写代码时 我收到了一些权限被拒绝的错误 我已经用谷歌搜索了一段时间 发现要获得 D
  • Titanium 创建图像文件:file.write(blob) 未创建正确的文件

    我正在尝试使用 Titanium 1 8 1 读取 PNG 文件 这是我读取文件的代码 var f Ti Filesystem getFile Ti Filesystem resourcesDirectory KS nav views pn
  • 我可以使用 Android Account Manager 获取 App Engine 的 OAuth 访问令牌吗?

    我的 AppEngine 服务器有 Android 客户端 两者都使用 Google 帐户 我想使用 AccountManager 来获取访问令牌对于 OAuth 到目前为止我正在使用 ClientLogin 但我想切换到 OAuth 在
  • 启动应用程序时出现 NullPointerException

    我厌倦了启动我的 Activity 在 AndroidManifest 中声明 但后来我看到了错误 08 11 16 04 05 952 E AndroidRuntime 815 FATAL EXCEPTION main 08 11 16
  • 如何保留操作/标题栏但隐藏通知栏

    如何保留操作 标题栏但隐藏通知栏 这个问题看起来已经得到了回答 但我发现的大多数答案都隐藏了操作栏和通知栏 我希望能够保留操作 标题栏 我得到的最好的方法是隐藏两者并使用线性布局来显示自定义操作 标题栏 但我想要一个系统生成的 另外 是否可
  • 如何编译telegram jni文件夹

    我正在尝试编译电报源代码中的 jni 文件夹github com DrKLO Telegram http github com DrKLO Telegram 与NDK 但是当我在 ndk 文件夹中的 cmd 中编写 ndk build 时
  • 当滚动 Recyclerview 单选按钮更改其选择时

    我正在使用 RecyclerView 设置单选按钮 选定的按钮选择在滚动时会更改其位置 请帮助我 Thanx in advance 我的 RecylerView 布局
  • Android facebook 4.0.0 分享对话框不分享内容

    几个小时以来 我一直在尝试通过 facebook 4 0 0 sdk 分享我的 android 应用程序中的内容 我完全按照Facebook 分享文档 https developers facebook com docs sharing a
  • 具有多个 Item 布局的 ListView 适配器

    我正在考虑向我的 Android 应用程序添加一个带有缩略图的列表视图 左边是缩略图 右边是文字 有没有办法用单独的 xml 文件填充列表视图 例如 我可以为奥地利 英国 美国等提供单独的 xml 并将它们添加到列表视图中吗 我问的原因是
  • Android < 4.3 WebView https 错误:回退到 SSLv3,因为主机不容忍 TLS

    我的应用程序包含一个WebView加载 httpsurl 我注意到 Android 版本 gt 4 3一切正常 但在较低版本上我收到此错误 external chromium net http http stream factory imp
  • 对齐顶部两个具有不同字体大小的文本视图

    我使用约束布局 我想实现以下目标 app layout constraintBaseline toBaselineOf 属性底部对齐两个文本视图 有什么方法可以使两个顶部对齐吗 由于大小差异 常规的 app layout constrain
  • 如何获取屏幕触摸的 x,y 坐标?

    当我的应用程序运行时 每当有人触摸屏幕时 是否有一种简单的方法来获取 x y 坐标 只是想将它们存储在一些整数中 覆盖onTouchEvent MotionEvent event 然后打电话event getX and event getY
  • 自定义 lint 规则,确保不调用特定方法

    我想确保在我的 Android 应用程序 Java 和 Kotlin 代码中 中不会调用特定类的特定方法 假设 我有一个名为Bar有两种方法 allowed and disallowed 这是代码 package com public cl
  • 使用 libGDX 写入 Json

    我是 Json 和 libGDX 的新手 但我创建了一个简单的游戏 我想将玩家姓名及其分数存储在 Json 文件中 有没有办法做到这一点 我想创建一个 Json 文件Gdx files localStorage如果它不存在 如果存在 则向其
  • public open fun navigateUp() 的参数太多

    我在 Kotlin 中创建了一个新的 Android 项目 我还使用向导创建了一个新的导航抽屉活动 一如既往 没有任何东西是开箱即用的 以下行显示编译错误 val navController findNavController R id n
  • Android:自动重新连接 BLE 设备

    我的目标是让 Android 设备重新连接到之前连接过的 BLE 设备无需用户干预与经典 BT 配对设备的操作方式相同 甚至可以通过电源循环工作 BTLE 设备的想法之一是节省服务 绑定和启用状态 以便重新连接非常快并且在外设上消耗很少的功

随机推荐