夜间模式颜色不适用于回收站视图背景

2023-12-21

我想为我的 Android 应用程序实现夜间模式,因此我使用 Theme.AppCompat.DayNight 主题来实现夜间模式。 但我必须在夜间模式期间自定义工具栏和回收器视图的颜色。

为此,我已在 attrs.xml 文件中声明了该属性,并使用该属性作为 recyclerview 中的背景。

这是 attrs.xml 文件

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="ds">
        <attr name="rv_color" format="color"/>
    </declare-styleable>
</resources>

这是回收者视图

 <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recyclerview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="?attr/rv_color"
        android:overScrollMode="never"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

现在对于样式,我已经为夜间模式声明了 styles.xml 和 styles.xml(夜间)。

这是 styles.xml

<style name="AppTheme" parent="Theme.AppCompat.DayNight">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@android:color/white</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="android:textColorPrimary">@color/colorPrimary</item>
    <item name="android:windowDisablePreview">false</item>
    <item name="rv_color">#FF0000</item>
</style>

这是 styles.xml(夜间)

<style name="AppTheme" parent="Theme.AppCompat.DayNight">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@android:color/white</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="android:textColorPrimary">@color/colorPrimary</item>
    <item name="android:windowDisablePreview">false</item>
    <item name="rv_color">#FFFF00</item>
</style>

在 styles.xml 文件中,我为 recyclerview 背景定义了红色,在夜间模式文件中定义了黄色。

AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);

上面的行存在于夜间模式的活动文件中。

但是每次回收器视图颜色都是红色的,即来自 styles.xml

为什么 styles.xml(夜间)颜色不适用于 recyclerview。

为什么它不起作用?或任何其他方式来做到这一点?


我遇到了同样的问题(只是 RecyclerView 始终具有 styles.xml (夜间)中定义的颜色,无论激活白天还是夜间模式)并在中找到了解决方案这个线程 https://stackoverflow.com/questions/38185880/cardview-suddenly-turned-black;我唯一需要改变的就是不打电话

getApplicationContext() 

但要使用

MyActivity.this 

相反,当创建适配器时

MyAdapter adapter = new MyAdapter(getApplicationContext(), arrayList);

在相应的活动中。工作解决方案:

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

夜间模式颜色不适用于回收站视图背景 的相关文章

随机推荐

  • 有没有更好的方法来处理 Json.Net 的编码值?

    我正在使用 Json Net 序列化 反序列化一个具有 System Text Encoding 类型属性的类 尝试一个简单的测试 我的类序列化没有任何问题 public class TestClass public Encoding Th
  • 是否可以通过 API 为授权信用卡交易“获取资金”?

    可以将 Bigcommerce 与信用卡处理机构 例如 Braintree 集成 这样付款仅在默认情况下获得授权 并且需要第二步来获取资金 Bigcommerce 使这些交易处于 等待付款 状态 并提供 UI 以通过管理界面启动捕获所述资金
  • 长按时进行选择但不显示上下文菜单的编辑文本?

    我想提供剪切 复制文本的自定义处理程序 长按目标 上下文菜单不应出现 可以使用跟踪器 或拖动器 选择文本 UPDATE protected void onCreate Bundle savedInstanceState super onCr
  • 寻找等权图的最短路径

    我有一个权重相等的图表 我怎样才能找到最短路径 我们可以用DijKstra s Algorithm并找到最短路径 我认为在这种情况下会使用回溯 但是 当图的权重相等时 还有其他方法可以找到最佳的最短路径吗 BFS 是获得从一个节点到另一个节
  • 无法使用 pip 安装任何软件包我收到此错误 ImportError: Cannot import name 'appdirs'

    当我尝试使用 pip 安装任何软件包或使用 pip 时 出现以下错误 ImportError cannot import name appdirs 一个例子 pip install tweepy Traceback most recent
  • subprocess.check_output返回码

    我在用 grepOut subprocess check output grep search tmp shell True 要运行终端命令 我知道我可以使用 try except 来捕获错误 但如何获取错误代码的值 我在官方文档中找到了这
  • 创建无公共IP地址的EMR集群

    出于安全原因 我希望创建一个 EMR 集群 其中没有为任何实例分配公共 IP 地址 我已经能够在我的 VPC 中启动集群 并使用我自己的自定义安全组 但由于某种原因 默认情况下所有节点都分配了一个公共 IP 地址 我在 EMR CLI 文档
  • org.apache.http.entity.ContentType 不再在 Apache 中了吗?

    由于某种原因 我无法导入 org apache http entity ContentType 我添加了 Apache HTTP 4 3 3 client core 公共编解码器 httpclient 缓存 公共日志记录 httpmime
  • 单击除特定 div 之外的正文

    我想做点什么 点击body 除了menutop这是里面的body div lorem ipsum div js body not menutop click function console log 323 也尝试过 var n menut
  • 如何欺骗应用程序认为其标准输出是终端,而不是管道

    我正在尝试做与 相反 的事情检测 stdin 是终端还是管道 https stackoverflow com questions 1312922 detect if stdin is a terminal or pipe in c c qt
  • 当 AsyncTasks 运行时处理屏幕方向变化

    我已经被这个困扰有一段时间了 当我有一个单独的屏幕时 如何正确处理屏幕方向的变化Thread AsyncTask跑步 目前 我有 android configChanges orientation keyboard keyboardHidd
  • Gradle def 与 ext

    使用有什么区别ext varname and def varname 例如 下面的代码似乎工作相同 task copyLicenses def outDir project buildDir absolutePath reports lic
  • jQuery Mobile 选择器菜单的代码?

    我一定错过了一些明显的东西 我正在查看 jQuery Mobile 的文档 但他们没有为您提供执行他们正在演示的操作的代码 我正在尝试创建一个选择器菜单 我在哪里可以获得此代码 它必须像一行 对吧 作为一个完全的新手 我在这里不知所措 谢谢
  • 如何使用 Windows 窗体创建自定义用户按钮/控件并将其与线条连接

    我正在尝试创建一些自定义按钮或用户控件 如建议的 GUI 中所示 功能应如下所示 图表或配置以图形方式创建 可以从工具栏拖动控件或通过鼠标右键单击 下拉菜单插入控件 通过从一个控件拖动到另一个控件 它们应该通过线连接 切换应该将视图从带有选
  • scapy.sr 和 scapy.srp 之间的差异

    我正在使用 Scapy 扫描我的网络 但看不到功能之间的差异 scapy sr and scapy srp 文档说scapy sr 返回数据包来自layer 3 and scapy srp 返回数据包来自layer 2 这些层是什么 抱歉我
  • 使用参数变量 Unity 加载场景

    在我的游戏中 有一个地图视图 其中包含 50x50 的图块网格 当你点击图块时 你会被发送到该图块视图并攻击事物等 就代码而言 这些 图块 之间的唯一区别是图块 ID 即 网格上的哪个数字 该数字将在 init 时传递给服务器来处理其余部分
  • 调用 ~Derived() 和 ~Base() 之间对象的状态

    Question C 标准对对象当时的状态有何保证 在派生类的析构函数执行之后 但在基类的析构函数执行之前 这是调用派生类的子对象的析构函数的时间 Example include
  • 尝试使用风味时 Flutter 应用程序构建失败

    我正在尝试在我的应用程序中使用风味 我遵循了各种指南 但每次都因同样的问题而无法构建 因为基本上每个博客文章和 SE 问题都引用相同的文章和资源 所以我不会再这样做了 为了调试 我决定简化问题并启动一个新项目 正常示例项目 并添加风味 每种
  • iOS 上的 OnAppearing 方法

    当我的应用程序位于后台并转到前台时 OnAppearing 方法在 IOS 中不起作用 或者当手机锁定然后解锁并且应用程序位于前台时 不会调用 OnAppearing 方法 在 Android 上一切正常 我在下面找到了这个指南 但仍然不起
  • 夜间模式颜色不适用于回收站视图背景

    我想为我的 Android 应用程序实现夜间模式 因此我使用 Theme AppCompat DayNight 主题来实现夜间模式 但我必须在夜间模式期间自定义工具栏和回收器视图的颜色 为此 我已在 attrs xml 文件中声明了该属性