带皮肤的 BottomSheetDialogFragment 主题

2024-01-15

如何结合BottomSheetDialogFragment主题与其他主题?

我的应用程序具有使用主题制作的皮肤。BottomSheetDialogFragment应该有圆角,我使用以下方法实现这一点:

 override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setStyle(BottomSheetDialogFragment.STYLE_NORMAL, R.style.CustomBottomSheetDialogTheme) /* hack to make background transparent */
 }

Then in styles.xml:

<style name="CustomBottomSheetStyle" parent="Widget.Design.BottomSheet.Modal">
    <item name="android:background">@android:color/transparent</item>
</style>

<style name="CustomBottomSheetDialogTheme" parent="Theme.MaterialComponents.Light.BottomSheetDialog">
    <item name="bottomSheetStyle">@style/CustomBottomSheetStyle</item>
</style>

但如果我从Theme.MaterialComponents.Light.BottomSheetDialog我没有得到我在皮肤主题中定义的配色方案。

那么问题来了:如何在皮肤主题内部定义Dialog主题?


You can add在您的应用程序主题中bottomSheetDialogTheme属性在您的应用程序中全局设置bottomsheetDialog样式。

<style name="AppTheme" parent="Theme.MaterialComponents.*">
   ......
   <item name="bottomSheetDialogTheme">@style/BottomSheetDialog_Rounded</item>
</style>

<style name="BottomSheetDialog_Rounded" parent="@style/ThemeOverlay.MaterialComponents.BottomSheetDialog">
    <item name="bottomSheetStyle">@style/BottomSheet_Rounded</item>
</style>

否则,在您的 BottomSheetDialogFragment 中,您可以覆盖getTheme() method.

public class RoundedBottomSheetDialog extends BottomSheetDialogFragment {

  //....

  @Override public int getTheme() {
    return R.style.BottomSheetDialog_Rounded;
  }
}

另外,为了获得圆角,您可以使用类似的东西:

  <!-- BottomSheet Dialog-->
  <style name="BottomSheetDialog_Rounded" parent="@style/ThemeOverlay.MaterialComponents.BottomSheetDialog">
    <item name="bottomSheetStyle">@style/BottomSheet_Rounded</item>
  </style>

  <style name="BottomSheet_Rounded" parent="Widget.MaterialComponents.BottomSheet">
    <item name="shapeAppearanceOverlay">@style/ShapeAppearanceBottomSheetDialog_Rounded</item>
  </style>

  <style name="ShapeAppearanceBottomSheetDialog_Rounded" parent="">
    <item name="cornerFamily">rounded</item>
    <item name="cornerSizeTopRight">16dp</item>
    <item name="cornerSizeTopLeft">16dp</item>
    <item name="cornerSizeBottomRight">0dp</item>
    <item name="cornerSizeBottomLeft">0dp</item>
  </style>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带皮肤的 BottomSheetDialogFragment 主题 的相关文章

  • 带预览和进度栏的 Twitter Bootstrap 图像上传

    我如何使用 Twitter Bootstrap 上传带有预览和进度条的单个图像 目前 在保存图像之前 我看不到上传图像的任何预览或进度条 Jasny 的 Bootstrap 分支让您能够接近这一点 看文档 http jasny github
  • Javascript:在函数内调用函数时 window.location.href 不会重定向

    单击按钮时 window location href 会将浏览器重定向到 stackoverflow com 但在输入文本字段中按 Enter 键时不会将浏览器重定向到 stackoverflow com 尽管两个事件侦听器使用相同的函数
  • 使用空的weak_ptr作为参数调用map::count安全吗?

    打电话安全吗map count http www cplusplus com reference map map count on an 未初始化因此为空weak ptr http en cppreference com w cpp mem
  • 如何在 Scala Play 框架中进行 Twitter 反向身份验证?

    我正在编写一个 play 应用程序 在 scala 中 并且正在尝试执行 twitter 此处概述的反向身份验证步骤 https dev twitter com docs ios using reverse auth https dev t
  • 使用 DataMapper 而不是 ActiveRecord [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 将同步 zip 操作转换为异步

    我们有一个现有的库 其中一些方法需要转换为异步方法 但是我不确定如何使用以下方法执行此操作 错误处理已被删除 该方法的目的是压缩文件并将其保存到磁盘 请注意 zip 类不公开任何异步方法 public static bool ZipAndS
  • Adobe Illustrator 中的折线简化如何工作?

    我正在开发一个记录笔划的应用程序 您可以使用定点设备来绘制笔划 在上图中 我绘制了一个笔划 其中包含 453 个数据点 我的目标是大幅减少数据点的数量 同时仍然保持原始笔画的形状 对于那些感兴趣的人 上图笔画的坐标可以作为GitHub 上的
  • Turbolinks 访问的页面中缺少 hubspot 聊天界面,但可用于全页面刷新

    我想将 hubspot 聊天界面集成到我的 Rails 4 Turbolinks 应用程序中 我已将 Google 跟踪代码管理器配置为在每个页面加载事件中显示支持聊天界面 该界面工作正常 GTM 标签 自定义 html PROBLEM 当
  • 如何从 python 中的字符串中删除 ANSI 转义序列

    这是包含我的字符串的片段 ls r n x1b 00m x1b 01 31mexamplefile zip x1b 00m r n x1b 01 31m 该字符串是从我执行的 SSH 命令返回的 我无法使用当前状态下的字符串 因为它包含 A
  • 具有重复值的 Sqlite 列

    就说专栏吧aSQLite 数据库的非常重复 始终有相同的 4 个值 其他值可能稍后出现 但不同值的数量将少于 1000 个 VALUES hello world it s a shame to store this str many tim
  • Haskell:如何创建将函数应用于元组项的最通用函数

    这是一个个人练习 旨在更好地理解 Haskell 类型系统的局限性 我想创建最通用的函数 将某些函数应用于 2 条目元组中的每个条目 例如 applyToTuple fn a b fn a fn b 我试图让这个函数在以下每种情况下都起作用
  • Centos/Linux 将 logrotate 设置为所有日志的最大文件大小

    我们使用 logrotate 并且它每天运行 现在我们遇到了一些情况 日志显着增长 阅读 gigabaytes 并杀死我们的服务器 所以现在我们想为日志设置最大文件大小 我可以将其添加到 logrotate conf 中吗 size 50M
  • NHibernate:无状态会话错误消息无法获取代理

    我正在使用 nHibernate 无状态会话来获取对象 更新一个属性并将对象保存回数据库 我不断收到错误消息 无状态会话无法获取代理 我在其他地方有类似的代码 所以我不明白为什么这不起作用 有谁知道问题可能是什么 我正在尝试更新Screen
  • IIS 中的 WIX 和证书

    我正在尝试设置我的安装 以便使用 WIX 配置我的站点及其证书 我可以在 IIS 中查看证书并有权访问 cer 文件 这就是我对证书的了解 所以请简化任何答案 即我不知道我的 BinaryKey 是什么 该证书已安装在计算机上 理想情况下
  • 如何从Python枚举类中获取所有值?

    我正在使用 Enum4 库创建一个枚举类 如下所示 class Color Enum RED 1 BLUE 2 我要打印 1 2 作为某处的列表 我怎样才能实现这个目标 您可以执行以下操作 e value for e in Color
  • AngularJS 中的全局模拟对象用于 jasmine/karma 测试

    我有一个正在模拟进行单元测试的对象 基本上在我的测试文件中 我将其模拟如下 var mockObject mockMethod1 function return true mockMethod2 function return true b
  • 在着色器中旋转法线

    我有一个场景 其中有多个具有各自位置和旋转的模型 给定法线 着色器对每个像素应用简单的双向照明 那是我的顶点着色器 version 150 in vec3 position in vec3 normal in vec2 texcoord o
  • 在reactjs中停止超时?

    有没有办法可以杀死 摆脱 reactjs 中的超时 setTimeout function do something bind this 3000 通过某种点击或操作 我希望能够完全停止并结束超时 有没有办法做到这一点 谢谢 假设这种情况发
  • 如何使用javascript取消设置变量? [复制]

    这个问题在这里已经有答案了 这是我到目前为止所尝试的 var nxt I am next window onscroll function var scr this pageYOffset if scr gt 400 console log
  • 应用服务器如何注入私有字段?

    我看到这个问题 注入私有 包或公共字段或提供 setter https stackoverflow com questions 2021716 inject into private package or public field or p

随机推荐

  • 除非您更新 Google Play 服务(通过 Bazaar),否则此应用程序不会运行

    我正在测试适用于 Android 的新 Google Maps API V2 当应用程序启动时我收到此消息 这是在 4 1 模拟器上运行的 这是我的AndroidManifest xml file
  • Hibernate的sessionFactory是线程安全的原因

    我了解到Hibernate的会话工厂据说是线程安全的 任何人都可以阐明它如何在 Web 应用程序中充当线程安全以及所有方法如何同步或其他什么 SessionFactory 的内部状态是不可变的 http docs jboss org hib
  • OleDb SQL 查询中的两个内部联接[重复]

    这个问题在这里已经有答案了 我正在尝试使用 OleDbCommand 对 Access 数据库 accdb 进行 SQL 查询 虽然这个命令工作正常 在OleDbCommand ExecuteReader string command SE
  • JSF 语言环境:浏览器定义的语言似乎被忽略

    目前 我的团队正在使用 Java 开发 Web 2 0 应用程序 我们使用 JSF 作为表示层 我们从表示层开始 因此尚未添加业务和数据层 我们使用的技术 JSF 莫贾拉 2 0 3 Primefaces 2 1 JSF 组件库 春季安全3
  • 在 .Net Core 应用程序中使用 SharePoint CSOM

    我想通过 Net Core MVC 应用程序上的 CSOM 库从 SharePoint 列表中获取数据 在 Net Framework 应用程序上实现这一点绝对没有问题 因为 Microsoft SharePoint Client 库包含
  • SVN 客户端错误“[...] 的服务器不支持 HTTP/DAV 协议”

    我正在 64 位系统上从 Windows 7 更新到 Windows 10 我在 Windows 7 机器上从 Subversion 服务器更新和签出项目没有任何问题 我下载了最新的 64 位版本并将其安装在 Windows 10 机器上
  • 对 qr.Q() 感到困惑:什么是“紧凑”形式的正交矩阵?

    R has a qr 函数 它使用 LINPACK 或 LAPACK 执行 QR 分解 根据我的经验 后者快 5 返回的主要对象是一个矩阵 qr 其中包含上三角矩阵 R 即R qr upper tri qr 到目前为止 一切都很好 qr 的
  • 将服务注入到类(而不是组件)Angular2

    我正在努力寻找一种将服务注入到 angular2 中的类对象中的方法 注意 这不是一个组件 只是一个类 export class Product id number name string manufacturer string const
  • 为什么自动装箱的整数和 .getClass() 值 ==-相等,而不仅仅是 .equals()-相等?

    也许我在 Java 上工作太久了 却没有真正理解它的一些基础知识 我确实明白 用于对象引用相等并且 equals 是为了对象值相等 比较Integers Integer x 1 y 1 System out println x y true
  • TFS 2015 - 等待请求代理

    因此 度假回来后 我的构建服务器不想再运行任何构建 它只是卡在了等待可用的代理 等待请求代理如果我取消它 我觉得它会卡住正在取消构建 因为在我取消构建后什么也没有发生 等待消息仍然存在 但构建不在构建队列中 代理池中的所有代理均呈绿色 且后
  • 改进 Dinic 算法的动态树数据结构

    我想将 Dinic 算法应用于动态树 但我找到的来源很少 特别是关于动态树 如果有一个带有详细解释的良好源代码或一些使用动态树的简单源代码 那就太好了 有人遇到过类似的事情吗 提前致谢 改进的基本思想是避免 Dinic 算法过早悲观 与预流
  • 在 div 中显示“显示更多”按钮而不是垂直滚动条

    我有一个固定高度的 div 其中包含一些 html 内容 当这个高度溢出时 我不希望出现滚动条 而是在 div 底部出现一个按钮 只有当你按下这个按钮时 所有的内容才会被显示 显然滚动条会自动显示 我知道有一个名为 溢出 的属性 您可以使用
  • 自动完成将值而不是标签应用于文本框

    我在尝试让自动完成功能正常工作时遇到了麻烦 对我来说一切看起来都不错但是
  • PopoverPresentationController 为零

    创建了一个单视图应用程序 我在其中放置了一个按钮 现在单击按钮我需要将 tableView 显示为弹出窗口 TableViewController 是在 xib 中创建的 问题是 tableViewController popoverPre
  • 使用任务管理器生成转储文件

    我知道在 Vista 中 您可以通过 goigg 到任务管理器 gt 进程 gt 右键单击 进程来生成转储文件 此选项在 Windows 7 Windows 2003 Windows 2008 等其他版本的 Windows 中是否可用 它在
  • Kivy - 另一个屏幕上的滑块类值更改

    我有一个滑块 其值会更改标签 这很容易理解 现在的问题是我想使用这个值在另一个屏幕上显示 最终 我希望滑块根据在滑块上选择的值在另一个屏幕上显示 1 16 个图像 下面是我现在所拥有的 它适用于该屏幕 但如何让这个值显示在另一个屏幕上 我知
  • NavUtils.shouldUpRecreateTask 在 JellyBean 上失败

    我有一个应用程序 它会发出通知 选择该通知后将启动一项活动 根据Android文档 我可以使用NavUtils shouldUpRecreateTask来检查活动是否已直接启动 即从通知 或通过正常的活动堆栈启动 然而它给出了错误的答案 我
  • 如何在 laravel 5.3 中显示图像

    我将图像存储在公共文件夹中现在我想显示我给出的路径的图像 但图像不显示任何人帮助我我的代码出了什么问题 我的图像完整路径是 public admin product img src height 30px width 30px 首先 您不应
  • 使用不同的输入参数多次运行 Fortran 代码

    我想使用不同的输入参数集多次运行 Fortran 77 程序 我已经确保输出文件名会根据我使用的不同输入参数而更改 但我不确定如何运行具有不同输入参数集的程序 而不必每次都转到代码来更改参数 为了说明我的问题 这里有一个简单的代码 PROG
  • 带皮肤的 BottomSheetDialogFragment 主题

    如何结合BottomSheetDialogFragment主题与其他主题 我的应用程序具有使用主题制作的皮肤 BottomSheetDialogFragment应该有圆角 我使用以下方法实现这一点 override fun onCreate