首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何让Android BottomSheetDialogFragment出现在系统/手势栏后面?

Android BottomSheetDialogFragment 是一个用于显示底部弹出式对话框的组件。默认情况下,BottomSheetDialogFragment 会出现在系统/手势栏的上方,但有时我们希望它出现在系统/手势栏的后面,以提供更好的用户体验。

要实现 BottomSheetDialogFragment 出现在系统/手势栏后面,可以按照以下步骤进行操作:

  1. 在 BottomSheetDialogFragment 的样式中设置透明的背景:
代码语言:txt
复制
<style name="TransparentBottomSheetDialogTheme" parent="Theme.Design.Light.BottomSheetDialog">
    <item name="android:windowBackground">@android:color/transparent</item>
</style>
  1. 在 BottomSheetDialogFragment 的 onCreateView 方法中,将背景设置为透明:
代码语言:txt
复制
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
    return inflater.inflate(R.layout.fragment_bottom_sheet_dialog, container, false);
}
  1. 在 BottomSheetDialogFragment 的 onActivityCreated 方法中,设置窗口属性,使其出现在系统/手势栏后面:
代码语言:txt
复制
@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    Window window = getDialog().getWindow();
    if (window != null) {
        window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
        window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
    }
}

通过以上步骤,我们可以让 BottomSheetDialogFragment 出现在系统/手势栏的后面,提供更好的用户体验。

关于腾讯云相关产品,腾讯云提供了丰富的云计算服务,包括云服务器、云数据库、云存储、人工智能等。您可以根据具体需求选择适合的产品。具体产品介绍和相关链接如下:

  1. 云服务器(CVM):提供弹性计算能力,满足不同规模业务的需求。了解更多:腾讯云云服务器
  2. 云数据库 MySQL 版(CDB):提供稳定可靠的云端数据库服务,支持高可用、备份恢复等功能。了解更多:腾讯云云数据库 MySQL 版
  3. 云存储(COS):提供安全可靠的对象存储服务,适用于图片、音视频、文档等数据的存储和管理。了解更多:腾讯云云存储
  4. 人工智能(AI):提供丰富的人工智能服务,包括图像识别、语音识别、自然语言处理等。了解更多:腾讯云人工智能

请注意,以上仅为腾讯云的部分产品示例,更多产品和服务请参考腾讯云官方网站。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

开启全面屏体验 | 手势导航 (一)

本系列文章会着重为开发者们介绍如何应用支持手势导航,涵盖的主题如下: 开启全面屏体验,应用的内容铺满整个屏幕 处理与系统 UI 的视觉冲突 处理与系统手势之间的冲突 各种全面屏体验场景,以及如何适配它们...具体来说,这意味着应用需要做两件事: 在导航后面绘制内容 想要支持手势导航,应用需要考虑的第一个因素是在导航后面绘制内容。...如何实现 想实现 "边到边" 全面屏体验分三步: 1. 请求进行全屏布局 第一步是系统将我们应用布局扩展至系统后方。...△ Android 10 上的动态颜色适配 半透明遮盖 另外,系统也可以在系统后面放置一层半透明遮盖。...在 Android 10 上禁用系统视觉保护 如果您不想系统执行任何自动内容视觉保护,则可以通过在主题中将 android:enforceNavigationBarContrast 和/或 android

2.5K30

开启全面屏体验 | 手势导航 (一)

本系列文章会着重为开发者们介绍如何应用支持手势导航,涵盖的主题如下: 开启全面屏体验,应用的内容铺满整个屏幕 处理与系统 UI 的视觉冲突 处理与系统手势之间的冲突 各种全面屏体验场景,以及如何适配它们...具体来说,这意味着应用需要做两件事: 在导航后面绘制内容 想要支持手势导航,应用需要考虑的第一个因素是在导航后面绘制内容。...如何实现 想实现 "边到边" 全面屏体验分三步: 1. 请求进行全屏布局 第一步是系统将我们应用布局扩展至系统后方。...△ Android 10 上的动态颜色适配 半透明遮盖 另外,系统也可以在系统后面放置一层半透明遮盖。...在 Android 10 上禁用系统视觉保护 如果您不想系统执行任何自动内容视觉保护,则可以通过在主题中将 android:enforceNavigationBarContrast 和/或 android

19510
  • 处理视觉冲突 | 手势导航 (二)

    边衬区 (Insets) 不少 Android 开发者看到边衬区 (insets) 往往会退避三舍,这个可能来源自他们在 Android Lollipop 时代试图在状态后面绘制 UI 的经历,而这个经历并不那么令人愉悦...Insets 区域负责描述屏幕的哪些部分会与系统 UI 相交 (intersect),例如导航或状态。如果您的控件出现在了这些区域内,就可能被系统 UI 遮盖。...在 Android 10 上,系统手势区域如下: △ 左/右侧的后退操作区域宽 40dp,下方的主屏操作区域高 60dp 如果您有需要滑动操作的控件出现在系统手势区域内,就可以使用对应的数值来将这些控件挪开...关于如何修改系统手势区域,请参考我们接下来的文章《如何处理手势冲突 | 手势导航连载 (三)》。 强制系统手势边衬区只包含那些系统保留的区域,在这些区域内系统手势操作永远优先。...在 Android 10 上,当前唯一的强制区域是屏幕底部的主屏手势区域,系统保留这个区域就可以用户在任何时候都可以退出当前应用: △ 底部 60dp 即为强制系统手势边衬区 稳定显示边衬区 方法:

    2.8K30

    如何处理手势冲突 | 手势导航连载 (三)

    从这一篇文章开始我们将介绍如何处理您的应用和 Android 10 中新引入的系统交互手势之间的冲突。 首先让我们来理解一下什么是 "手势冲突 (gesture conflict)"。...那么,如何解决这个问题呢?我们准备了一张流程图帮助大家快速做出决策: △ 请点击图片放大查看 注解: 非粘性沉浸模式: 用户可以通过在系统上滑动来退出沉浸模式。...流程图里的第一个问题,询问您应用的主要使用场景是否需要隐藏导航和/或状态。所谓 "隐藏",是指它们根本不可见。这并不意味着您的应用实现从边到边的全屏状态。...衍生阅读: 如何 WindowInsets 更易于使用: medium.com/androiddeve… 更优的解法 在做完上一步后,您可能会觉得问题已经解决了。...应用可以通过 Android 10 中新增的系统手势区域排除 API 来系统边缘的一部分区域不响应系统手势

    4.9K30

    实现边到边的体验 | 您的软键盘动起来 (一)

    Android 11 中的新功能之一是可以应用在对于屏幕上的软键盘打开和关闭的过程创建无缝过渡的动画效果,这一功能源自 Android 11 中对 WindowInsets API 的大量改进。...在这个系列的第一部中,我们会介绍如何实现边到边,以及 Android 11 中相关 API 的改动。...实现边到边 (edge-to-edge) 去年我们介绍了一个关于实现 "边到边" 的概念,这个方法可以应用深度利用 Android 10 的手势导航: 开启全面屏体验 | 手势导航 (一)。 ?...简单回顾一下,实现 "边到边" 会您的应用渲染在系统状态后面,如上图所示。 引用去年我自己的话: 实现从边到边的全面屏体验后,系统会覆盖在应用内容前方。...View.SYSTEM_UI_FLAG_LAYOUT_STABLE or // 通知系统,视窗希望在导航被隐藏的情况下如何布局内容。

    1.4K20

    用 CoordinatorLayout 处理滚动

    当渲染一个 Snackbar 时,它通常出现在可见屏幕的底部。Floating action button 必须上移以便腾出空间。 ?...transparent 通过像上面那样启用系统的半透明效果,你的布局会将内容填充到系统后面,因此你还必须在那些不想被系统覆盖的布局上使用 android:fitsSystemWindow...另外一种为 API 19 添加内边距来避免系统覆盖 view 的方案可以在这里查看。...还要注意的是 RecyclerView 应该使用 wrap_content 而不是 match_parent,这是一个新修改,为的是底部只占用必要的而不是全部空间: <CoordinatorLayout...关于如何创建这种类型的 fragment 可以查看本文。你应该继承 BottomSheetDialogFragment 而不是 DialogFragment。

    4.8K92

    沉浸模式 | 手势导航连载 (四)

    沉浸模式是一种内容全屏呈现的方式,用来隐藏系统,从而确保应用拥有最大的屏幕空间。此外,它还提供了防误操作的功能 (比如意外使用手势离开应用),特别适合在游戏中采用。...这两种模式都有两种状态: 系统隐藏: 在此状态下,返回主屏幕手势和后退手势均被禁用。用户必须首先从边缘向内侧滑动才能让系统显示。...就手势导航而言,非粘性沉浸模式与其在早期版本的 Android 上的工作方式一致。在此模式下,无论系统是否可见,每个边缘能排除的区域高度仍旧限制为 200dp。...但是,在系统可见时,系统则会忽略所有排除的手势区域,用户可以返回,而不会受到来自应用的干扰。在粘性沉浸模式下,系统仅在短时间内可见,因此不会影响应用的正常交互。...image.png △ 请点击图片放大查看 继续深入 如何处理手势交互中的冲突就讲到这里。我也希望您已经对手势交互有了更深的理解,并将这些理解完美落实到应用的开发与更新中去。

    1.3K30

    实现边到边的体验 | 您的软键盘动起来 (一)

    Android 11 中的新功能之一是可以应用在对于屏幕上的软键盘打开和关闭的过程创建无缝过渡的动画效果,这一功能源自 Android 11 中对 WindowInsets API 的大量改进。...实现边到边 (edge-to-edge) 去年我们介绍了一个关于实现 "边到边" 的概念,这个方法可以应用深度利用 Android 10 的手势导航: 开启全面屏体验 | 手势导航 (一)。...简单回顾一下,实现 "边到边" 会您的应用渲染在系统状态后面,如上图所示。 引用去年我自己的话: 实现从边到边的全面屏体验后,系统会覆盖在应用内容前方。...接下来我们会通过几个常见的应用场景来介绍如何更新这些标志,而不是一一介绍所有这些标志的改变: 沉浸模式 如图所示,这个绘图应用隐藏了系统 UI 来绘图区域最大化: Markers 应用,展示隐藏系统...(Type.systemBars()) 应用使用 沉浸模式 来用户在系统隐藏的时候可以通过滑动来召回系统

    33620

    Android Q 手势导航背后的故事

    未来,手势设计将何去何从,对于这个问题仍有许多地方值得进一步研究,但是我们希望本文能够提供一些洞见,您对手势导航的开发设计流程有一个初步认知,同时了解我们是如何平衡开发者和 OEM 生态圈伙伴之间的关系的...,用户很容易发生误触事件) 手势导航有助于提供沉浸度更高的应用体验: 大屏窄边已成为当下主流硬件趋势,而手势导航能够最大限度减少系统在应用的内容之上绘制视觉元素 (例如: 主屏/返回键和底部导航),从而为用户创造更具沉浸感的体验...历尽几轮研究之后——用户学习新系统的速度有多快,需要多久的适应时间,使用感受如何——才得以敲定终版设计。 返回键一直是 Android 导航独具魅力的设计点。...在 Android Q 模式下,返回手势在最初 3 天的使用频率较低,但过了这段时间之后,用户每天进行返回操作的次数将与三键导航及 Android P 导航中的次数持平。 开发者该如何应对?...为了更好地支持手势导航,请你务必认真对待以下三方面的开发工作: 按照边到边的设计理念,真正实现应用的全屏体验 妥善处理与系统用户界面的视觉重叠部分 (例如: 导航) 解决与系统手势冲突的应用手势 我们最近刚发布了第一篇

    2.2K50

    Android 11功能:到目前为止我们所知道的最大变化!

    当您点击手机前的空气时,将会有一个新的暂停手势起作用,并且Android Police报告整个手势控制系统正在改进,并且将工作得更加顺利。 双击功能 Android 11也采用了新的“双击”手势。...根据XDA开发人员的介绍,以下是选择的列表: 关闭计时器 启动相机 启动Google Assistant 播放/暂停媒体 收合状态 使来电静音 暂停闹钟 取消固定通知 执行“用户选择的操作” 改进的手势导航...Android手势导航系统也进行了一些调整,Android 11可以您提高或降低某些控件的灵敏度,例如手势,以使其更易于使用。...刷新率查看器 无论是固定的还是可变的,更高的屏幕刷新率在智能手机上正变得越来越普遍,Android 11可以您选择始终查看显示器的刷新率。...该数字(很可能是60Hz,90Hz或120Hz)将出现在屏幕的左上角。 新的权限选项 ? 最后但并非最不重要的一点是,Android 11将引入一些新的权限选项,以帮助您掌握共享数据的最新状况。

    1.2K20

    Android 11 正式版发布

    对比最近两年发布的几个版本可以发现,安卓系统其实变化不是很大,底层改变也不是很多,更新的内容主要是围绕着消息、 隐私和如何更好地控制所有的智能设备来开发的。...应用也可以通过新的 API 出现在这个控制菜单中,详情可以查看官方文档。...同步 IME 切换效果 : 这是一组全新的 API,您可以在 IME (输入法编辑器,也叫软键盘) 和系统进出屏幕时同步调整应用中的内容,从而更轻松地创建出自然、直观、流畅的 IME 切换效果。...此外,您可以通过新的 WindowInsetsAnimationController API 控制系统 UI,包括系统、IME、沉浸模式等。 ?...手势导航 (自 Android 10 开始支持):请支持手势导航,包括提供边到边的沉浸式体验,以及确保自定义手势与默认手势配合良好。

    1.2K50

    Android 11 正式发布 | 开发者们的舞台已就绪

    我们在打造 Android 11 时,重点关注了三个主题: 以人为本 的沟通方式、用户快速访问和 灵活控制 所有智能设备,以及用户有更多方式控制设备上的数据如何共享的 隐私安全 。...键盘提示整合功能 可以自动填写应用以及 IME (输入法编辑器) 在 IME 建议中安全地向用户提供基于上下文的实体和字符串,使得输入更加便利。...同步 IME 切换效果  - 这是一组全新的 API,您可以在 IME (输入法编辑器,也叫软键盘) 和系统进出屏幕时同步调整应用中的内容,从而更轻松地创建出自然、直观、流畅的 IME 切换效果。...此外,您可以通过新的 WindowInsetsAnimationController API 控制系统 UI,包括系统、IME、沉浸模式等。阅读 这篇博文 了解更多。...手势导航  (自 Android 10 开始支持) - 请支持手势导航,包括提供边到边的沉浸式体验,以及确保自定义手势与默认手势配合良好。

    1.2K41

    Android经典实战之用WindowInsetsControllerCompat方便的显示和隐藏状态和导航

    这个类是 Android 视图系统的一部分,提供了对窗口内嵌元素的更现代和灵活的控制方法。 这是一个位于 androidx.core.view 包中的类,旨在增强对不同 Android 版本的兼容性。...2、 控制系统窗口的行为: 你可以控制系统窗口的行为模式,例如 BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE,允许用户通过滑动手势临时显示系统。...例如,可以设置系统在滑动手势下显示。...= true // 导航使用亮色样式 示例:简单的 Activity 下面是一个完整的 Activity 示例,展示了如何初始化和使用 WindowInsetsControllerCompat。...END 点赞转发,精彩不停歇!关注我们,评论区见,一起期待下期的深度好文!

    19910

    Human Interface Guidelines —— 状态(Status Bars)

    Status Bar出现在屏幕的上边缘,并显示有关设备当前状态的有用信息,如时间,手机运营商,网络状态和电池电量。 Status Bar中显示的实际信息取决于设备和系统配置。 使用系统提供的状态。...人们期望状态系统范围内保持一致。 不要用自定义状态替换它。 将状态样式与您的app进行协调。...有几种常见的技术可以做到这一点: ·在您的app中使用navigation bar,它会自动显示status bar背景并确保内容不会出现在status bar下。...·在status bar后面显示自定义图像,如渐变色或纯色。 ·在status bar后面放置一个模糊的视图。 考虑在显示全屏媒体时暂时隐藏status bar。...人们使用简单的,可发现的手势重新显示隐藏的status bar。 在照片app中浏览全屏照片时,一次点击就会再次显示status bar。 使用status bar来表示网络活动。

    82560

    解读Android 12首个开发者预览版

    Android 12行为变更:面向所有应用 用户体验升级 沉浸式手势导航改进 从Android 10 开始,Android 系统就已支持手势导航,致力于给用户带来沉浸式的全新体验。...在之前版本的系统下,用户启动安卓的沉浸模式,默认需要的手势操作是:从屏幕侧方滑入,退出沉浸模式,然后再返回上一个界面。...最新发布的Android 12首个开发者预览版则对手势导航模式进行了简化:用户不再需要滑动两次,只需一次滑动手势,即可退出全屏沉浸模式并返回上个界面,更加高效和便利。...Android 12则更进一步限制了所有非系统应用程序对设备MAC地址的访问,无论目标API级别如何。...Android 12行为变更:针对Target = 12的应用 自定义通知 Android 12 开发者预览版对通知进行了更改。

    1.9K30

    Android 15新特性,强制edge-to-edge全面屏体验

    Android 15再过不了多久就要正式发布了,我也是第一时间就去了解了今年新系统的一些变化。 怎么说呢?...所以,在这次的Android 15更新中,Google终于下决心要强推这个功能,以所有应用程序都能达到更好的体验。...发现了这个现象之后,可能细心的朋友立马就察觉到了,那如果我手机底部的导航模式不是这种手势导航,而是传统的Back、Home、Task 3按键导航,edge-to-edge全面屏体验会变成什么样呢?...从这个效果上我们也可以看出,3按键导航在edge-to-edge全面屏体验方面是完全落后的,这种模式后面就会逐渐被Android系统边缘化了。...也就是说,如果我们设计的界面在这个区域有正好类似的手势操作,那么就会出现手势冲突的情况,导致用户的操作无法正常进行。

    15610

    iOS 9人机界面指南(四):UI元素(上) - 腾讯ISUX

    你不会希望用户在滚动的时候看到五花八门的内容和状态自身的元素混合在一起。想要让用户感受到内容区域够大的同时,最大限度地保证可读性,请保证在状态后面添加一块背景,用以模糊出现在状态后的内容。...以下有一些方法可以滚动的内容能正常显示在状态 后面: 使用导航控制器(navigation controller)来展示内容。导航控制器自动展示状态背景,同时能确保内容视图不会出现在状态后面。...当你这么做的时候,请确保用户在轻击屏幕时即可重新唤起状态以及相关的UI。而除非你有充分的理由,否则最好不要重新定义一个手势用户唤起状态,因为用户不会发现,就算发现了也难以记住。...工具: 是半透明的 在iPhone上,工具始终位于屏幕底部,而在iPad上则有可能出现在顶部 当键盘被唤起、用户使用了手势、或者当前视图变为竖屏的情况下,工具可以隐藏。...(默认情况下,当用户导入、移动或者删除项的时候,会出现系统默认的动画效果。) 支持开发者额外定义手势识别来执行自定义操作。

    10.1K51

    Ubuntu 22.04 震撼登场!!!

    窗口的 "close" 按钮不再由一个明亮的红点来表示;取而代之的是,与 vanilla GNOME 42 中的 libadwaita 的外观相呼应,Yaru 在所有三个窗口控件的后面放置了微妙的灰色...通过系统设置中的(新改进的)外观面板,可以进行少量的桌面图标设置。以及添加到桌面的新文件夹默认出现在右下角,而不是左上角;但可以自行进行配置。 5....触控板手势 新的触控板手势,用于打开和关闭 Workspace Switcher 和 App Launcher,并在其中进行分页。...手势动画是 1:1 的,它们的反应速度可以和你的手部动作保持一致。“听起来可能不太好,但这是真正的 ' 锦上添花 ' 的改进, Ubuntu 感觉更像是一个精致而有凝聚力的整体。” 10....当你的麦克风处于静音状态时,你会看到一个灰色的图案,你知道没有人能听到你的声音。 12. 通知区的日历事件 来自日历应用程序的事件出现在通知 shade/clock applet 中。

    2.3K50
    领券