gpt4 book ai didi

安卓深色模式 : Elevation Not Changing Surface Color

转载 作者:行者123 更新时间:2023-12-05 00:16:18 26 4
gpt4 key购买 nike

我正在关注谷歌的优秀 blog post为我的应用程序制作一个深色主题,但我没有看到任何关于如何让 View (按钮、应用程序栏等)的提升效果起作用的引用。例如,当我将我的应用程序主题设置为 <style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">并像这样制作一个按钮或卡片:

        <Button
android:id="@+id/keypadOne"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@color/surface"
android:elevation="01dp"
android:text="@string/one"
android:textColor="@color/onSurface"
android:textSize="36sp" />

我希望看到使对象看起来更亮的效果,因为深色主题中使用的半透明白色覆盖层暗示高度或比背景更靠近光源。相反,我的按钮、操作栏等与背景颜色相同,因此不可见。

我的问题是:

  1. 我必须手动实现此提升功能还是由 Material 库提供?
  2. 如果我让此功能在 Android 10+ 上自动运行,我是否必须实现手动解决方案以向后兼容版本 9 及更早版本?

最佳答案

我找到了 solution .为了在 CardView 的高度上实现叠加着色效果,您必须使用包含此功能的 Material 库的特殊对象:MaterialCardView。使用此 CardView 后,将其设置为app:cardElevation 属性更改我在上面链接的关于黑暗模式的谷歌博客文章中提到的白色覆盖。

例如,我的 CardView 现在看起来像这样:

    <com.google.android.material.card.MaterialCardView 
android:id="@+id/testCard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:elevation="18dp" app:cardCornerRadius="4dp" />

请注意,尽管工具栏等其他 View 具有 Material 版本,但此特殊的高度属性仅适用于 MaterialCardView。

关于安卓深色模式 : Elevation Not Changing Surface Color,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60860240/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com