appcompat 库样式如何工作

2024-01-21

我对 appcompat 库中的样式如何工作感到非常困惑。

根据here https://chris.banes.me/2014/10/17/appcompat-v21/:

我们现在使用 Toolbar/ActionBar 的支持实现 平台意味着我们不再读取任何 android: 属性 与操作栏相关。

对于已经具有现有 appcompat 设置的应用程序,这意味着 您应该删除 v14+ 主题,这些主题在 安卓命名空间。请注意,这仅适用于 影响操作栏的样式/小部件。

对于大多数应用程序,您现在只需要一个主题声明,在values/中

所以这是我的问题:

如果我想在 API 14+ 中使用材质设计 ActionBar,我可以只使用 appcompat_v7 中提供的 ActionBar/Toolbar 并将其样式设置在通用值/文件夹中,并删除“android:”命名空间?但为什么我看到人们在下面编写代码:

<style name="MyTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    ....
    <item name="windowContentOverlay">@null</item>
    <item name="android:windowContentOverlay">@null</item>
    ....
</style>

为什么会有“android:”命名空间?上面的代码和使用 value-v21、value-v14、文件夹有什么区别?

有人可以解释或指导我找到正确的来源吗?


是的,如果您使用 AppCompat v21+,您只需要一个父主题Theme.AppCompat(或子主题,例如Theme.AppCompat.Light) 你也是not需要android:操作栏/窗口相关标志的命名空间属性,也不是 v14、v20 等的单独主题。AppCompat 跨所有 API 级别提供的顶级属性的完整列表可以在AppCompat R.styleable 主题 https://developer.android.com/reference/android/support/v7/appcompat/R.styleable.html#Theme.

互联网上的大部分代码(包括部分的developer.android.com网站)仍然是为v21之前的AppCompat编写的,did需要同时android:和无前缀版本。

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

appcompat 库样式如何工作 的相关文章

  • 使用DBFlow,如何加密已经存在的数据库?

    我正在使用 DBFlow 来处理项目中的数据库 并且我想对现有数据库进行加密 我知道我可能必须删除现有的未加密数据库并创建另一个加密数据库 我也知道我可以将 SQLCipher 与 DBFlow 一起使用 如上所述文档 https gith
  • 模拟器中 Google Wear 上的语音识别器没有语音输入

    我试图使用 Google Wear 网站上的自由形式语音输入 在 hello world 示例中 我刚刚添加了对 textView 的单击 它确实从语音意图中调出 立即发言 活动 但模拟器无法检测到我的麦克风发出的任何声音 我使用的是 Ma
  • Android TelecomManager 中的 addIncomingCall 没有执行任何操作

    我正在尝试使用本机 Android 来电 UI 我有一个连接服务 并且我已经成功注册了一个电话帐户 但在我调用方法 addNewIncomingCall 后什么也没有发生 对我所缺少的有什么想法吗 显现
  • 通过代码在创建时突出显示 ListView 项目

    我想在创建 listView 时突出显示 ListView 的第一行 0 我尝试了不同的方法 就像您在注释代码中看到的那样 但没有任何效果 这很奇怪 因为 OnItemClickListener 中的突出显示工作正常 它通过 xml 选择器
  • 升级到最新支持库后Android JACK编译器错误

    Android Studio 2 2 3 Windows 10 64位 构建工具版本 25 Android Gradle插件版本2 2 3 升级到最新的支持库 从 23 4 0 到 25 1 0 并更改编译版本 从 23 到 25 后 我收
  • Android ToggleButton 始终检查

    如果切换按钮处于选中或取消选中状态 我想存储在 SharedPreferences 中 toggle setOnCheckedChangeListener new OnCheckedChangeListener public void on
  • 无法在 Android Studio 中导出签名的 APK

    当我使用keytool list keystore path to keyfile jks并提供我的密码 我可以看到那里的条目 但是当我在尝试使用相同的密码生成签名的 APK 时使用相同的密码时 我收到错误 无法加载密钥库 密钥库被篡改 或
  • 4 天后,应用仍未在 Google Play 搜索中编入索引

    我已经在 4 天前在 google play 上发布了我的第一个应用程序 语音到短信 但我仍然无法通过其名称或开发人员名称在搜索中找到我的应用程序 我只能通过包名称或真实应用程序名称 但不带空格 找到我的应用程序 VoiceToSMS 链接
  • Play 商店中的应用描述更新

    我想更新应用程序的描述以及 Play 商店上的屏幕截图 但应用程序保持相同 即相同的版本号 我不想发布新应用程序 因为应用程序中没有任何更改 这可能吗 谷歌也会要求更新应用程序吗 您可以更新描述 也可以更改屏幕截图 您的应用程序将保持不变
  • Android 认为我没有关闭数据库!为什么?

    我有一个 SQLiteDatabase 数据成员 我在 onCreate 中初始化它 并在 onPause onStop 和 onDestroy 中调用 close 它在 onResume 中重新初始化 它似乎运行得很好 但当我查看调试器时
  • 如何在同一设备上运行的 Android 应用程序之间传输文件?

    我正在编写一个与 RESTful 服务交互的 Android 应用程序 该 Web 服务本质上是一个文件系统 并提供元数据以及对文件的 CRUD 访问 我的应用程序检索元数据 并通过ContentProvider 我需要添加与我的应用程序在
  • Android - 状态栏阻止全屏

    我的应用程序启动时可以全屏正确运行 然而 在最小化然后返回应用程序后 状态栏会弹出 并将我的视图向下推一点 如何防止状态栏移动我的视图 这是我的布局
  • Android 操作项上的通知徽章

    我想在操作栏中放置的购物车图像上添加一个通知徽章 并以编程方式操作它 有帮助吗 您可以显示自定义MenuItem on ActionBar通过创建一个custom layout for MenuItem 要设置自定义布局 您必须使用菜单项属
  • 如何将 JSON 数据从 Android 发送到 php url?

    我想将登录信息从我的应用程序发送到 php url 因为这我的应用程序将崩溃 任何人都可以帮助我解决这个问题 这是我的服务器登录方法 我想将数据发送到此登录方法 Method public method login Parameters 3
  • 使 Recyclerview 固定高度并可滚动

    已解决以下检查答案 所以我试图为我的 Android 应用程序创建评论功能 我想在 recyclerview 中显示评论 然后在 recyclerview 下方有一个按钮和文本视图来添加评论 我想让 recyclerview 具有一定的高度
  • XML 配置中的 screenName 不起作用

    我刚刚在我的应用程序中添加了对 Google Analytics 分析 的支持 但我无法
  • Android ScrollView,检查当前是否滚动

    有没有办法检查标准 ScrollView 当前是否正在滚动 方向是向上还是向下并不重要 我只需要检查它当前是否正在滚动 ScrollView当前形式不提供用于检测滚动事件的回调 有两种解决方法可用 1 Use a ListView并实施On
  • Android 从通知刷新 Activity

    我有一个程序 我在其中调用通知 如果您将其下拉 该通知将启动一个新活动 mNotificationManager NotificationManager getSystemService ns int icon R drawable sta
  • 动态更改按钮上的图像视图

    在我的应用程序中 我有按钮和ImageView 当我按下按钮时我想改变ImageView 我的可绘制文件夹中有 5 张图像 按下按钮时 ImageView 根据按钮单击一张一张地更改图像 我想要它的解决方案 感谢任何可以提供帮助的人 维护一
  • Android:透明活动问题

    最近 在我们的一款生产应用程序上 透明活动已停止工作 我的意思是它变成了黑色背景而不是透明背景 当我将活动的背景颜色设置为纯色 即红色 绿色等 时 它的应用不会出现问题 该问题可能是由于迁移到 AndroidX 引起的 但我没有这方面的证据

随机推荐

  • 程序启动时(asm、linux)默认的寄存器状态是什么?

    当程序启动时 Linux ELF 可执行文件 其中是否有零eax ebx等等或者还有什么吗 我没有进行任何调用或使用外部库 在我的机器上 寄存器被清零 但是在编写 asm 程序时 我可以在新进程中依赖这种行为吗 这完全取决于每个平台的 AB
  • 为外部承包商清理 Mercurial 存储库

    我有一个包含一些敏感文件和目录的活动项目 我想聘请外部承包商来做一些简单的 UI 工作 但是 我不希望承包商有权访问某些目录和文件 我的项目在 Bitbucket 上的 Mercurial 中 清理项目并让他有权提交更改的最佳方法是什么 我
  • ** 中的错误不是 NgModule

    我有这个 NgModule NgModule imports CommonModule exports SP21LoadingBar declarations SP21LoadingBar export class SP21LoadingB
  • 将 SQL Azure 数据库导出到 blob - Start-AzureSqlDatabaseExport:无法将 AzureStorageContainer 转换为 AzureStorageContainer

    我在用这段代码找到了 https stackoverflow com questions 36261258 start azuresqldatabaseexport object reference not set to an instan
  • 我如何知道Linux系统调用是否是线程安全的?

    Linux 中的一些函数通过 r 标记 线程安全 例如 gmtime r 但大多数系统调用都没有被标记 也没有在联机帮助页中提及 所以我的问题是 我如何知道Linux系统调用是否是线程安全的 谢谢你 我认为你的意思是 库函数 由于对线程的内
  • 将第一个函数中创建的数组传递给第二个函数

    这个问题是从我的上一个问题开始的 主要是因为我想避免使用全局变量 因为它的局限性 请参阅此处链接的答案 如何调用由不同函数创建的数组 https stackoverflow com questions 41436347 how do i c
  • 如何可靠地恢复 MySQL blob

    多年来我一直使用以下命令备份 MySQL 数据库 mysqldump myDatabaseName u root gt myBackupFile sql 备份似乎工作正常 然后我想将其中一个备份恢复到另一个命名的数据库 所以我这样做了 my
  • Qt5 在 OSX 上安装 -qt-xcb

    我在 OSX 上安装 Qt5 时遇到问题 The Mac OSX 的 Qt 要求 http qt project org doc qt 5 0 qtdoc requirements mac html完成 Xcode 和命令行已安装 然后我按
  • 使用 ctypes 将 python 字符串传递给 Fortran 子例程

    我正在尝试使用 ctypes 将参数传递给共享库中的 Fortran 子例程 现在这是我的简单 fortran 代码 MODULE test module INCLUDES SUBROUTINE fstr test file or exte
  • 用 C++ 构建多线程工作队列(消费者/生产者)

    我有以下场景 我有一个线程应该填充 带有整数对的容器 本质上是任务描述 我有一个很大的 应从此容器中获取元素并执行操作的工作线程数 8 16 一些工作 我认为这个问题可以通过阻塞队列轻松解决 例如在项目删除时 线程同步对队列的访问 如果没有
  • WPF DataTemplate 下的排序 ItemsControl

    我在 DataTemplate 下使用 ItemsControl 我想对 ItemsControl 进行排序ic使用 id 列
  • Unity3D C# 检查事件是否为空

    例如 DelegateHandler是我发送事件的地方 public class DelegateHandler MonoBehaviour public delegate void OnButtonClickDelegate public
  • 方法签名中的Java“参数”?

    在C 中 如果希望方法具有不确定数量的参数 可以将方法签名中的最后一个参数设为params这样方法参数看起来像一个数组 但允许使用该方法的每个人根据调用者的需要传递任意数量的该类型的参数 我相当确定 Java 支持类似的行为 但我不知道如何
  • 查找子字符串,带有一些附加条件

    我得到了一个如下所示的字符串 1011010100 我的任务是找到一个子字符串的长度 其中空值的数量始终 10110101 gt 8 我知道复杂度应该是 O n 或 O n log n 因为长度最多可达 10 6 有任何想法吗 The O
  • 在 Android 上,我可以注册一个回调来告诉我蓝牙是否打开或关闭吗?

    我需要知道我的应用程序内部蓝牙是否打开或关闭 或者蓝牙是否打开或关闭 例如从操作系统设置下拉菜单 我想我可以在活动中做到这一点onResume 但事实证明 当 Android 操作系统的设置 下拉菜单 通过用手指从屏幕顶部边缘下拉来访问的菜
  • 用于计算类数的部分语法

    我需要计算正确的 C 源文件中的类数量 我写了以下语法 grammar CSharpClassGrammar options language CSharp2 parser namespace CSharpClassGrammar Gene
  • H2 表列在双引号中不区分大小写

    我正在开发一个工具 它将数据导入到动态生成的模式中 因此 我几乎无法控制表或列名称的外观 我最近遇到了在表中创建两列名称相同但大小写不同的问题 这个问题可以通过这个最简单的 DDL 操作来演示 CREATE TABLE a c1 integ
  • 尝试使用 BayesSearchCV 调整 MLPClassifier hide_layer_sizes 时出错

    当尝试调整 sklearn 时MLP分类器hidden layer sizes超参数 使用贝叶斯搜索CV 我收到错误 ValueError can only convert an array of size 1 to a Python sc
  • Android在哪里存储SQLite的数据库版本?

    我无法找到 Android 在 SQLite 数据库文件中存储数据库版本的位置 数据库版本到底存储在哪里 您可以使用以下方式阅读版本android database sqlite SQLiteDatabase getVersion 在内部
  • appcompat 库样式如何工作

    我对 appcompat 库中的样式如何工作感到非常困惑 根据here https chris banes me 2014 10 17 appcompat v21 我们现在使用 Toolbar ActionBar 的支持实现 平台意味着我们