首页
学习
活动
专区
圈层
工具
发布

三句代码创建全屏Dialog或者DialogFragment:带你从源码角度实现全屏Dialog

,以应对不同的场景,选择的规则就是用户设置的主题样式(Window属性),比如需不需要Title,而布局样式在选定后就不能再改变了(大小可以),有些属性是选择布局文件的参考,如果是在setContentView...之后再设定,就是失去了意义,另外Android也不允许在选定布局后,设置一些影响布局选择的属性,会抛出异常,原理如下。...创建沉浸式全屏Dialog 在全屏Dialog的基础上,我们可以创建沉浸式Dialog,也就是让Dialog的内容区域延展到状态栏下方,由于这里用到了fitsystemwindow,所以要牵扯DecorView...及rootView的设置,在上面的基础上有两点需要处理,一是:内容区域延展上去;二是:状态栏变成透明(不透明你也看不见啊),如何延展内容区域,参考全屏、沉浸式、fitSystemWindow使用及原理分析...(不兼容5.0以下),主题中添加如下属性,设置状态栏颜色透明即可,当然,代码中也可实现。

5.1K40

Android 沉浸式解析和轮子使用

为了让标题栏回到原来的位置并且适应标题栏的颜色,我们在标题栏的上方添加一个大小和 StatusBar 大小一样假的状态栏 View,View 的 BackgroundColor 可以自己设置成标题栏一样的颜色也可以是其他颜色...,这个 View 起到一个占位的作用。...,设置初始化window属性让后设置导航栏和状态栏颜色。...中有设置并且 dialog 出现不需要改变状态栏则不用设置 ZanImmersionBar,如果需要做定制化上面的高级用法在 Dialog 也支持 结合 dialogFragment 中使用 ZanImmersionBar.with...① 使用 dimen 自定义状态栏高度,不建议使用,因为设备状态栏高度并不是固定的 在 values-v19/dimens.xml 文件下 <dimen name="status_bar_height"

4.1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android经典面试题之Kotlin中如何隐藏DialogFragment和Dialog的导航栏

    DialogFragment隐藏导航栏 在 Android 中,使用 DialogFragment 显示对话框时,如果您希望隐藏系统导航栏(如状态栏和导航键),可以通过设置相关的系统 UI 标志来实现。...onViewCreated: 在视图创建后设置系统 UI 可见性标志,隐藏导航栏和状态栏。 onStart: 设置对话框窗口的布局参数,使其覆盖整个屏幕。...") 小结 通过在 DialogFragment 的 onViewCreated 方法中设置系统 UI 的可见性标志,可以实现隐藏系统导航栏的效果。...这种方法允许您的 DialogFragment 在显示时全屏,并隐藏状态栏和导航栏。...Dialog中隐藏导航栏 在 Android 中,如果想在 Dialog 中隐藏系统导航栏(包括状态栏和底部的导航键),可以通过设置窗口属性来实现。

    3K10

    Android 透明状态栏(伪沉浸式)

    6.0 以下无法改状态栏图标文字颜色,只能控制颜色不要太白。...window = this.activity.getWindow(); decorView = window.getDecorView(); // 设置状态栏颜色 window.setStatusBarColor...因为如果是图片,就不能设置状态栏颜色或者盖个 View 上去,而是让状态栏透明,内容往下,让图片透上去,当然如果是子 View 的图片,还不能 setFitsSystemWindows。...状态的重置 因为考虑同一个 Activity 多次改变状态栏颜色的情况,遇到的一个比较烦的问题是,许多状态需要重置,不然就会影响下一次,而且如果设置图片又改成颜色的,那么要考虑的更多,一会希望图片内容顶到状态栏下面...支持 DialogFragment 在 onCreateDialog 或 onViewCreated 的回调里,反正就是 Dialog 创建好了后调用 getDialog().getWindow().addFlags

    2.8K20

    Android 一起来看看知乎开源的图片选择库

    本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 前言 在实际开发中,图片选择器一直都是必不可少的一个部分,不管是 QQ 头像的设置,还是发送一条装逼的微信朋友圈,都要用到图片选择器来给用户选择他们想要上传的图片...缩略图缩放 ---- 使用 thumnailScale(float scale) 来设置缩略图位图相对于视图大小的缩放比例,而且它应该是(0.0,1.0)中的浮点值。...attrs.xml 中定义)可以修改: 属性 作用 colorPrimary 应用栏的颜色 colorPrimaryDark 状态栏的较暗变体 toolbar: toolbar toolbar 的风格...媒体网格的占位符颜色或 drawable page.bg Activity 或 Fragment 页面的背景颜色或 drawable bottomToolbar.preview.textColor 底部工具栏的背景颜色或...猜你喜欢 Android 一款十分简洁、优雅的日记 APP Android 能让你少走弯路的干货整理 Android 撸起袖子,自己封装 DialogFragment 手把手教你从零开始做一个好看的 APP

    2.2K30

    关于 Android 状态栏的适配总结

    在 Android 4.4 之前是不支持透明状态栏 需要注意的一点是在设置透明状态栏的情况下,是需要我们的内容布局延伸到状态栏的,因此这个时候使用 fitSystemWindows 这个属性是没有意义的...padding,给这个 padding 设置一个合适的颜色来充当系统状态栏的颜色就可以了。...但是使用 fitsSystemWindo 就会完美适配了,因为这个属性在 Android 4.4 以下的系统上是不起作用的。...Android 5.0 到了 Android 5.0 关于状态栏又发生了变化,新增了直接对状态栏的操作,直接改变状态栏颜色,这一点在之前版本是没有的,Android 4.4 虽然可以实现改变状态栏颜色的效果...如果我们希望系统视图不覆盖UI的某些部分,则可以在视图层次结构中使用此方法。 默认情况下,只是将 insets(将 insets 设置为 0 )做为 View 的 padding。并且返回true。

    1.6K20

    最新iOS设计规范三|3大界面要素:栏(Bars)

    在拆分视图中,导航栏可能会显示在拆分视图的单个窗格中。导航栏是半透明的,也可以添加背景色,并且必要时可以设置为隐藏。 ? 某些情况下可暂时隐藏导航栏,以提供更沉浸的体验。...四、状态栏(Status Bars) 状态栏出现在屏幕的上边缘,并显示有关设备当前状态的有用信息,例如时间,移动电话和电池电量。状态栏中显示的实际信息取决于设备和系统配置。 使用系统提供的状态栏。...状态栏的文本和指示器的视觉样式可以是浅色或深色,可以针对APP进行全局设置,也可以针对不同的屏幕单独设置。 深色状态栏的效果在浅色内容至少效果很好,而浅色状态栏的效果在深色内容上效果很好。...在“照片”应用中浏览全屏照片时,只需轻按一次即可再次显示状态栏。 五、标签栏(Tab Bars) 标签栏出现在页面底部,可以在APP的不同模块之间快速切换。标签栏是半透明的,也可添加背景颜色。...工具栏是半透明的,也可以添加背景颜色,并在用户不需要它们时应该隐藏起来。 例如:在Safari中,当你开始滚动页面时,工具栏会自动隐藏,因为你可能正在阅读。你还可以点击屏幕底部让它再次出现。

    14.9K10

    【Flutter 专题】41 图解神秘的 SystemChrome~

    ,第一种:当前重力感应方向不在设置多方向列表中,初始方向为列表第一个设置方法;第二种:当前重力感应方向在设置多方向列表中,无论顺序第几位,默认均展示当前重力感应方向(非 portraitDown)。...; 1. systemNavigationBarColor 该属性仅用于 Android 设备且 SDK >= O 时,底部状态栏颜色; SystemChrome.setSystemUIOverlayStyle...2. systemNavigationBarDividerColor 该属性仅用于 Android 设备且 SDK >= P 时,底部状态栏与主内容分割线颜色,效果不是很明显; SystemChrome.setSystemUIOverlayStyle...3. systemNavigationBarIconBrightness 该属性仅用于 Android 设备且 SDK >= O 时,底部状态栏图标样式,主要是三大按键颜色; SystemChrome.setSystemUIOverlayStyle...4. statusBarColor 该属性仅用于 Android 设备且 SDK >= M 时,顶部状态栏颜色; SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle

    2.2K31

    原来在Android中请求权限也可以有这么棒的用户体验

    不然你的PermissionX会变得非常不稳定,比如频繁在崩溃和权限事件丢失之中挣扎。 关于对DialogFragment的支持就到这里。但,这不是本文的重点。..., 0).group 从Android 10开始Google禁用了这个功能,所以在之后的版本中需要手动设置每个运行时权限对应了什么权限组。...因为每个项目都会有自己的主题色,设置一个与项目主题相符的颜色或许比使用默认的颜色更加合适一些。 目前,默认的权限提醒对话框上,权限组图标、确定、取消按钮,使用的都是蓝色。...而如果你觉得这种颜色和你们项目主题风格不搭的话,也可以设置成任意你想要的颜色。...这里setDialogTintColor()方法接收两个参数,其中第一个参数是设置浅色主题下的颜色值,第二个参数是设置深色主题下的颜色值。

    3.3K30

    最新iOS设计规范七|10大视觉规范(Visual Design)

    你可以将APP设置为动态适应各种特征,包括: 不同的设备屏幕尺寸,分辨率和色域(sRGB / P3) 不同的设备方向(纵向/横向) 拆分视图 iPad上的多任务处理模式 动态类型文本大小更改 基于区域设置启用的国际化功能...若要适应某些文本大小的更改,你可能需要调整布局 为可交互元素提供充足的点击热区。将所有控件的最小可触碰区域保持在44pt x 44pt。 ? 在多个设备上预览你的APP。...当设备以横向放置时,可能适合某些应用程序(例如游戏)将可点击的控件放置在屏幕的下部(在安全区域下方延伸),以便为内容留出更多空间。...全屏iPhone型号的状态栏比其他型号高。如果你的APP采用固定的状态栏高度将内容定位在状态栏下方,则必须更新APP以便于根据用户的设备来动态的定位内容。...色盲人可能无法区分某些颜色组合;而对比度不足会导致图标和文本与背景混合,使内容难以阅读。 系统颜色 iOS提供了一系列的系统颜色,可自动适应活动和可访问性设置的变化,如增加对比度和降低透明度。

    12K30

    Android中如何动态的调整Dialog的背景深暗

    在 Android 开发中,当你使用 Dialog 或 DialogFragment 时,可以通过设置 Window 的背景变暗来突出它的可见性。这个效果是通过 dimAmount 属性来控制的。...DialogFragment 假设你正在使用 DialogFragment,那么你可以在 onCreateDialog 或 onViewCreated 方法中配置 Dialog 的窗口属性。...在 DialogFragment 中设置 dimAmount public class MyDialogFragment extends DialogFragment { @Override...dialogFragment.updateDimAmount(0.8f); // 将dimAmount调整为0.8 这样你就可以在不同情况下动态调整 Dialog 的 dimAmount 了。...Dialog 在 Dialog 中设置 dimAmount 如果你直接使用 Dialog 而不是 DialogFragment,你可以在创建 Dialog 时设置 dimAmount: Dialog dialog

    1.2K10

    鸿蒙开发:沉浸式效果实现

    安全区域实现沉浸式 安全区域是指页面的显示区域,也就是状态栏、导航栏区域之外的区域,没有特殊的情况,默认下开发者开发的界面都是在安全区域内,如下图,粉色的区域就是安全区域。...SafeAreaType 扩展安全区域的枚举类型 名称 描述 SYSTEM 系统默认非安全区域,包括状态栏、导航栏。 CUTOUT 设备的非安全区域,例如刘海屏或挖孔屏区域。...应用窗口管理实现沉浸式 应用窗口管理,有一点好处是,可以让所有的页面统一实现沉浸式的效果,使用window中setWindowLayoutFullScreen方法,主要作用是设置主窗口或子窗口的布局是否为沉浸式布局...状态栏属性设置 当然了,窗口管理中,不仅仅可以实现沉浸式的效果,还可以更改状态栏的背景,字体颜色等功能,比如,我们把状态栏背景设置成红色背景,白色字体。...,navigationBarContentColor:导航栏文字颜色等等,可以根据自身需要进行设置。

    84910

    腾讯开源超实用的UI轮子库,我是轮子搬运工

    高效的工具方法 提供高效的工具方法,包括设备信息、屏幕信息、键盘管理、状态栏管理等,可以解决各种常见场景并大幅度提升开发效率。...使用不同的 Builder 来构建不同类型的对话框,这些 Builder 都拥有设置 title 和添加底部按钮的功能,不同的 Builder 特有的作用如下: MessageDialogBuilder...配合 QMUIWindowInsetLayout 使用,可使 QMUITopBar 在支持沉浸式状态栏的界面中顶部延伸到状态栏。...根据指定比例,在两个颜色值之间计算出一个颜色值。 将颜色值转换为字符串。...快速设置状态栏为黑色或白色字体图标(支持 4.4 以上版本 MIUI 和 Flyme,以及 6.0 以上版本的其他 Android)。

    6.2K30

    Android开发框架Collection

    4.解决SQLit内容为null报错 5.状态栏修改:增加设置状态栏透明+黑色字体 v1.2.9 1.去掉Relam数据模块,安装包大小减少 2.对原生SQLite数据库进行封装,使用更加方便...MAX_MEMORY_SIZE 缓存最大的内存,默认为10M MClASS 设置网络请求json通用解析类 EXPOSEPARAM Json数据某些字段在没有数据是会不返回来,可通过这个属性设置过滤...Bar可通过DefaultDefineActionBarConfig进行相关设置 属性 作用 hideBackBtn 隐藏返回按钮 setBarBackgroundColor 设置Bar的背景颜色 setBarHeight...2.OutSideFrameTabLayout的使用 属性 作用 tab_tabIndicatorColor 设置Tab颜色 tab_indicator_corner 圆角大小 tab_indicator_marginLeft...setStatusBarBlackFontBgColor 设置黑色字体状态的背景颜色 setStatusBarColor 设置状态栏背景颜色 setStatusBarFullTranslucent 设置状态栏透明

    48410

    关于 Android 中的各种 Bar 和“透明状态栏”的一些知识

    说明:在 Android 4.4 之前状态栏一直就是黑色的,在 Android 4.4 中带来了 windowTranslucentStatus 这一特性,这个时候才可以给状态栏设置颜色。...修改状态栏颜色 Android 5.0 (API 21) 后支持直接修改状态栏的颜色,在 Android 4.4(API 19)之前是不允许操作状态栏的,也就是说在 Android 4.4 之前,我们是没法对状态栏进行任何操作的...Android 4.4 修改状态栏颜色 // 将状态栏设置为透明(需要 API 19) 设置成这种模式后,状态栏会变成透明,我们的内容布局(只是我们 Activity 对应的布局,不包含 Window...修改状态栏文字颜色 关于状态栏的文字颜色,是在 Android 6.0 才开始可以支持修改的 // 修改成 黑色字体 getWindow().getDecorView().setSystemUiVisibility...可以在布局属性中设置。作用和给控件添加 "fitsSystemWindows" 属性相同。

    3.9K10

    Android状态栏颜色修改

    前言 Android 4.4(API 19)之后,就提供了修改状态栏颜色的方法,但是在 Android 6.0(API 23)之后,才支持修改状态栏上面的文字和图标颜色,默认是白色的。...所以会导致一个问题,在 4.4 到 6.0 之间的系统,状态栏设置为浅色的话,状态栏上面白色的文字和图标会看不清 有一些第三方的系统提供了设置状态栏和状态栏文字、图标颜色的方法,比如小米的MIUI和魅族的...基于上面的思考,封装了设置 Android 4.4 以上系统状态栏颜色和状态栏字体、图标颜色的方法: 首先,需要引入 SystemBarTint 库: dependencies { implementation...,需要先将状态栏设置为透明 setTranslucentStatus(activity); //设置状态栏颜色 SystemBarTintManager...,有可以加上 } } } } /** * 设置Flyme系统状态栏的文字图标颜色 * @param

    4.7K30

    HarmonyNEXT:沉浸式效果实现

    安全区域避让安全区域避让,主要是通过在页面内给组件设置expandSafeArea属性来实现沉浸式效果,大家一定要知道,所谓的安全区域就是指页面的显示区域,也就是状态栏、导航栏区域之外的区域。...名称描述SYSTEM系统默认非安全区域,包括状态栏、导航栏。CUTOUT设备的非安全区域,例如刘海屏或挖孔屏区域。KEYBOARD软键盘区域。...如果你要修改状态栏的图标颜色,可以结合windows来实现。在独立页面中,除了以上的安全区域避让,我们还可以直接获取getLastWindow,然后设置,其效果和安全区域设置是一模一样的。...这种情况下,我们就需要把整体的UI视图,在状态栏之下,可以先获取状态栏的高度,然后进行设置即可:Column() { Text("我是标题") .width("100%"...,沉浸式是可以改变状态栏中属性颜色的,如下所示。

    27300

    移动端常用的meta总结

    320PX,但是设备定义了H5页面展示的区域宽度应该是980PX,这样的话要想把H5页面全部进行展示,只有整体缩小大约三倍或者让用户在320PX的区域中来回的挪动才能看全整个H5页面。...WebApp全屏模式 设置状态栏颜色 只有在开启WebApp全屏模式下才能起到效果...content的值为 default(状态栏将为正常的,即白色,网页从状态栏以下开始显示) | black(状态栏将为黑色,网页从状态栏以下开始显示) | black-translucent(状态栏将为灰色半透明...设备的图标统一为“四边圆角”、“高光处理”。...通过META设置图片加载方式会作用于整个页面,如果希望对单个图片进行设置,那么可以使用这个 <meta name="imagemode" content

    1.5K30
    领券