Android 通知与 DecoratedCustomViewStyle

2023-12-08

我正在尝试使用自定义布局在 Android 7 上创建通知,但我想使用 v7 支持库中的 DecoratedCustomView 样式:https://developer.android.com/reference/android/support/v7/app/NotificationCompat.DecolatedCustomViewStyle.html

我想使用这种样式的原因是我想使用android提供的通知头,如文档所述:

开发人员无需提供完全自定义的通知,而是可以设置此样式并仍然获得系统装饰,例如具有扩展可供性和操作的通知标头。

所以我尝试使用仅包含带有单个 TextView 的 LinearLayout 的 RemoteViews 。

    final NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context)
                .setWhen(new Date().getTimeInMillis())
                .setSmallIcon(R.drawable.ic_notification)
                .setContentTitle("title")
                .setContentText("text")
                .setStyle(new android.support.v7.app.NotificationCompat.DecoratedCustomViewStyle())
                .setContent(remoteViews);

结果是一个只包含我的 RemoteViews 的通知,不幸的是没有标题。我刚刚在媒体上找到了一个使用此的示例:https://medium.com/@britt.barak/notifications-part-3-going-custom-31c31609f314

但我无法使用 Android 提供的标头。任何帮助,将不胜感激 :)


这似乎是 android 支持库中的一个问题。我用通知生成器测试了它,它的工作原理与应有的一样。

我使用了该指南:https://medium.com/exploring-android/android-n-introducing-upgraded-notifications-d4dd98a7ca92

我在官方谷歌问题跟踪器上提交了该问题的错误:https://issuetracker.google.com/issues/62475846

update

虽然这不是谷歌方面的实际错误,但我认为实现并不理想。 问题是,使用了 v4 支持库的NotificationCompat,它不适用于 v7 装饰器。

发生这种用法是因为您无法以与 v7 NotificationCompat 相同的方式使用构建器模式。

import android.support.v7.app.NotificationCompat;

final NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context);
notificationBuilder.setWhen(new Date().getTimeInMillis())
            .setSmallIcon(R.drawable.ic_notification)
            .setContentTitle("title")
            .setContentText("text")
            .setStyle(new NotificationCompat.DecoratedCustomViewStyle())
            .setContent(remoteViews);

update 2

自支持库版本最终发布以来26.0.0不再需要使用 v7 的支持库。 DecoratedCustomViewStyle() 现在在 v4 版本中也可用。 所以在你的情况下你应该这样做:

.setStyle(new NotificationCompat.DecoratedCustomViewStyle()) 

代替

.setStyle(new android.support.v7.app.NotificationCompat.DecoratedCustomViewStyle())

现在应该做到这一点了。

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

Android 通知与 DecoratedCustomViewStyle 的相关文章

随机推荐

  • 如何在Java中使用readline()方法?

    我是Java初学者 我正在阅读通过给变量赋值的主题readLine 从键盘的方法 书中给出的程序如下 import java io DataInputStream class Reading public static void main
  • sql server 函数中的 newid()

    我必须在查询结果处插入一个假列 这是表值函数的返回值 该列数据类型必须是唯一标识符 最好的方法 我认为 是使用newid 功能 问题是我无法使用newid 在这种类型的函数中 在函数内的 newid 中无效使用副作用或时间相关运算符 这是一
  • 在 JavaScript 中将字符串转换为 XML 文档

    在 Ajax 的 jQuery 示例页面上看到了这个示例 var xmlDocument create xml document ajax url page php processData false data xmlDocument su
  • 我可以使用一些解决方法来避免混合内容错误吗?

    我正在开发一个使用 esri 服务 资源的 Net core Web 应用程序 该应用程序最终将托管在客户端的服务器上 我们的服务器上托管有 esri 资源 他们的服务器上托管有其他 esri 资源 不管出于什么原因 他们拒绝使用 SSL
  • Python 错误:OSError:[WinError 193] %1 不是有效的 Win32 应用程序

    使用 Anaconda Navigator 更新一些包 numpy matplotlib 和 Spyder 后 我使用这些包的代码不再有效 并且在导入时出现错误 我尝试将更新恢复到以前的版本安装 没有成功 我检查了Python 产生 OSE
  • 在 d3.js 中查找路径的切线

    我想沿着路径放置 svg 元素 例如椭圆 例如使用 d3 js 生成的曲线带 B 样条插值的线生成器 虽然使用 path getPointAtLength 查找沿路径的点的坐标很容易 但我不知道如何找到线上任何点的切线 如果我可以获得切线
  • Android HttpUrlConnection getInputStream 抛出 NullPointerException

    我正在尝试从此网址下载图像 https hme player pictures s3 amazonaws com test 512813ed3b83286c72f376c7 thumb100 jpg 这是堆栈跟踪 03 21 12 58 0
  • Java println 语句中字符串中 + 符号的含义

    我是 Java 新手 下面这句话是什么意思 补充 登录println System out println 计数为 i 加号运算符具有双重含义 它也是一个串联运算符 由于 计数是 是类型String 我 Integer 转换为String以
  • 如何处理php中eval函数的解析错误

    我正在尝试使用 php 的 eval 函数 但我一直在处理解析错误 就像考虑我是否有 1 或 1 这样的边缘情况 如果给我解析错误 语法错误 有人知道如何处理语法错误或如何绕过错误消息 我想给出更好的错误消息 是否可以将错误消息存储到变量中
  • 将Python venv移动到另一台没有互联网的机器上

    我正在尝试将 Python 项目部署到没有互联网的机器上 因为它没有互联网 所以我无法使用 pip 安装任何软件包requirements txt文件 我想知道是否可以将包含所有已安装软件包的现有环境移动到另一台预安装了所有软件包的计算机中
  • AVMutableComposition - 视频资源之间的空白/黑框

    我目前正在尝试使用 AVMutableComposition 将 5 个视频背靠背放置 如下所示 mixComposition insertTimeRange CMTimeRangeMake kCMTimeZero asset1 durat
  • 如何限制函数可以运行的时间(添加超时)?

    如何设置函数可以运行的最长时间限制 例如 使用time sleep作为占位符函数 如何限制时间量time sleep最多可以运行 5 分钟 300 秒 import time try As noted above time sleep is
  • 数组结构与结构数组

    从我在这里读到的一些评论来看 最好是Structure of Arrays SoA over Array of Structures AoS 用于像 CUDA 这样的并行实现 如果这是真的 有人能解释为什么吗 选择 AoS 与 SoA 以获
  • 如何在iPhone中将QTVR图像旋转360度?

    我想开发一款基于 iPhone 的应用程序 其中我想将一张图像 类型 QTVR 旋转 360 度 所以 我可以得到与谷歌地图中的街景相同的行为 如果有人这样做了 请在此处分享代码片段或任何相关文章的任何有用的网址 然后请将其粘贴在回复中 非
  • 'static' 关键字在类中起什么作用?

    具体来说 我正在尝试这段代码 package hello public class Hello Clock clock new Clock public static void main String args clock sayTime
  • 当输入值可以是不同格式时,如何在 R 中将日期转换为格式“yyyy-mm-dd”

    我可以接收日期可以采用以下两种格式之一的文件 mm dd yyyy 或 yyyy mm dd 它们是首先要考虑的因素 无论我收到的日期格式如何 我都希望能够将它们转换为 yyyy mm dd 格式的 日期 数据类型 我尝试过使用 df 1
  • 比较 Array 扩展中的对象导致 Swift 中的错误

    我正在尝试构建一个扩展 将 NSArray NSMutableArray 的一些便利功能添加到 Swift Array 类中 并且我正在尝试添加此功能 func indexOfObject object AnyObject gt Int i
  • 您可以为 JFrame 内的 JPanel 设置永久大小吗?

    我当前的问题是我有一个带有 2x2 GridLayout 的 JFrame 在其中一个正方形内 我有一个用于显示网格的 JPanel 我正在与 java swing 库一起度过愉快的一天 看看 Image Java 会自动扩展每个 JLab
  • 在 bash 脚本中创建which命令

    对于作业 我应该创建一个名为my which sh这将 做与 Unix 命令相同的事情 但使用 for 循环而不是 if 我也不允许在我的脚本中调用它 我对此是全新的 并且一直在阅读教程 但我对如何开始感到非常困惑 没有which只列出命令
  • Android 通知与 DecoratedCustomViewStyle

    我正在尝试使用自定义布局在 Android 7 上创建通知 但我想使用 v7 支持库中的 DecoratedCustomView 样式 https developer android com reference android suppor