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

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

然而有些交互可能导致应用某些视图被系统遮盖,导致用户无法看见或操作。本文正是为帮助您解决这个问题而撰写——如何判断安全交互区域。 更具体一点来说,本文主要处理系统 UI 出现视觉重叠问题。...自 API 1 以来,它们就以各种形式存在着,并且每当系统 UI 重叠显示在您应用上方时,这个方法就会被调用。常见例子是下拉状态导航,或者弹出屏幕软键盘 (IME)。...当系统设置为使用按钮导航模式时 (即上图例子所示),视觉冲突会更加明显,因为这时导航高度更大。...注意,使用可点击区域里数值进行布局时,依然可能导致自己控件系统 UI 在视觉上重叠,这一点系统窗口区域 insets 不同,使用后者值对自己控件进行位移后能确保不会与系统/导航发生视觉重叠...该属性通常 RecyclerView 一起使用,我们将在以后文章中对其进行详细介绍。 但是,请确保 Listener 里计算操作有幂等性,即多次进行该计算所得到结果应该相同。

2.8K30

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

粘性沉浸模式: 用户可以通过在系统上滑动来暂时退出沉浸模式 这里我们向您进一步解释一下流程图里内容。 问题 1: 应用需要隐藏导航或状态吗?...流程图里第一个问题,询问您应用主要使用场景是否需要隐藏导航和/或状态。所谓 "隐藏",是指让它们根本不可见。这并不意味着让您应用实现从边到边全屏状态。...即使考虑加上了内外边距情况,用户仍然可以正常通过滑动操作来翻看里面的图片。 问题 6: 该视图/控件是否和强制系统手势交互区域重叠最后一个问题询问该控件是否位于系统强制手势导航交互区域内。...但是,当用户尝试快进和快退歌曲时,会发生这种情况: 发生这种情况是因为,屏幕底部系统手势交互区域进度条重叠了,而在这里系统手势优先级更高。...但请注意,我们依然需要在播放控件底部插入一个内边距,其值等于系统高度,这样可以使歌曲名称等文本不会被系统导航条 (即屏幕底部那条 "横线") 遮盖。

4.9K30
您找到你想要的搜索结果了吗?
是的
没有找到

Anroid Wear OS 手表应用开发 - UI

,圆形布局内容,不会超过显示边界: 导航抽屉 为了节省宝贵显示空间,通常手表应用是没有标题,在使用 ViewPager 时候,也没有 TabLayout 显示,但因此我们无法很好的确认当前页面...导航 WearableNavigationDrawerView 就是用来解决这个问题,我们先看看它效果: 从手表顶部向下滑,会出现一个导航,显示当前页面的图标和标题。...操作抽屉 当需要对当前页面进行一些操作时候,但页面里又没有空间再放按钮了怎么办?既然可以从顶部下拉出导航,要不在底部上拉出一个操作?...,controller.peekDrawer() 会在底部露出一小部分操作,如果当前页面是一个列表,这一部分会在列表滑动时隐藏,在列表到顶部和底部时显示: 露出部分默认会显示操作一项图标,可以在布局中添加...match_parent" android:layout_height="match_parent" android:scrollbars="vertical" /> 复制代码 代码中设置: // 使列表上一项最后一个项在屏幕上垂直居中对齐

2.5K30

实践 | Google IO 应用是如何适配大尺寸屏幕 UI

由于双窗格 Fragment 中各个目的页面已经不属于应用主导航一部分了,因此我们无法通过按设备上后退按钮在窗格内自动向后导航,也就是说,我们需要实现这个功能。...△ 平板横屏时搜索应用 (窄模式) △ 平板竖屏时搜索应用 (宽模式) 此前,我们通过在搜索 Fragment 视图层次中应用部分使用 标签,并提供两种不同版本布局来实现此功能...这些独立网格卡片是定义在 res/layout-w840dp 下 备用布局,数据绑定处理信息如何视图绑定,以及卡片如何响应点击,所以除了不同样式下差异之外,不需要实现太多内容。...space, space)) } } SpaceDecoration 是 ItemDecoration 一种简单实现,它在每个元素周围保留一定空间,这也解释了为什么我们会在 840dp 或更宽屏幕上...将 RecyclerView 自身内边距也设置为相同值,会使得元素同 RecyclerView 边界距离元素间空隙保持相同大小,在元素周围形成统一留白。

2.1K20

RecyclerView 加上折叠效果

RecyclerView 有很高自由度,可以说只有想不到没有做不到,真是越用越喜欢。这次用超简单方法,让 RecyclerView 带上折叠效果。 效果是这样。...image.png 总结一下这个列表特点,就是以下三点: 重叠效果; 层次感; 首项差动。 下面我们来一个个解决。...重叠效果 其实就是每一项都搭一部分在它前面那项而已。我们知道,RecyclerView 可以通过设置 ItemDecoration 来实现列表间隔效果,有没有想过要是把间隔设为负数会怎么样?...这里让每一项高度比它一项高 5dp。...首项差动 最后,我们想给第一项增加一个差动效果,这个同样在 onScrolled 方法里面做处理就好了: View firstView = layoutManager.findViewByPosition

1.3K10

Android开发笔记(一百四十四)高仿支付宝头部伸缩动画

这么说可能比较抽象,那就先来看看两张导航效果图,第一张是导航完全展开时界面,此时页面头部导航占据了较大部分高度; ?...这个内容视图可以是RecyclerView,也可以是NestedScrollView; 2、AppBarLayout嵌套CollapsingToolbarLayout,这是为了定义导航下面需要展开和收缩部分视图...; 3、CollapsingToolbarLayout嵌套Toolbar,这是为了定义导航上方无论何时都要显示长条区域,其中Toolbar还要定义两个不同样式布局,用于分别显示展开收缩状态时工具界面...,蒙到最后就看不见了。...反过来,也可以一开始给导航罩上一层不透明视图,此时导航控件是看不见,然后随着距离变化,遮罩变得越来越不透明,导航也会跟着变得越来越清晰了。

1.1K10

Android5.0和6.0之后新增控件说明

NavigationView Android 5.0 协调布局 CoordinatorLayout Android 5.0 悬浮按钮 FloatingActionButton Android 5.0...底部弹窗 BottomSheetBehavior Android 6.0 应用布局 AppBarLayout Android 5.0 可折叠工具布局 CollapsingToolbarLayout...这个系统版本有关,每个版本android.jar是固定,有在该内核中定义控件才能正常调用,没在内核中定义控件在运行时会扔出类找不到异常。...3、第三类是v7兼容库和design库,它们有各自库工程,开发者要在App工程中手工导入用到兼容库。 v7design库导入App工程后,编译出来App即可兼容4.*系统。...使用v7design库控件,类似于使用自定义控件,不但要在布局文件中引用完整路径控件名称,还要在根布局声明命名空间(即添加属性xmlns:app="http://schemas.android.com

1.2K20

折叠屏上应用设计规范,了解一下?

深入理解布局 深入理解布局指南 介绍了布局容器相关概念,它提供了一个整体框架,可帮助开发者思考如何在屏幕上排列导航、工具和内容等界面元素。...例如,在大屏设备上,您可使用 Navigation rail (左侧边导航条) 代替 底部导航 (Bottom navigation),两者功能相同,视觉表现方式也类似,但 Navigation rail...信息流 我们可以通过信息流沉浸式地展示一个数据集,因此 RecyclerView 是非常适合选择,我们可以通过改变 RecyclerView 使用 LayoutManager 来改变其展现形式。...我们有许多可选方案,比如使用屏幕尾侧侧边抽屉式导航,或者使用上滑式底部动作条,或者使用选项菜单,甚至可以将内容完全隐藏起来。...用户轻易就能触及屏幕底部角落,但可能无法触及屏幕最顶端,尤其是在竖屏模式下。这意味着如果您使用 Navigation rail 这类组件,将导航按钮居中或固定在屏幕底部,这会更便于用户操作。

4.3K20

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

使用标准返回按钮。标准返回按钮可以让用户通过信息层次结构来追溯自己步骤。但是,如果你想使用自定义返回按钮,请确保它样式仍然看起来是返回,且界面的其余部分匹配。...三、侧边(Sidbars) 侧边在iPhone上使用较少,更多用在iPad。它提供了应用程序导航,在侧边中选择一项可以使人们导航到特定内容。例如,“邮件”中显示所有邮箱列表。...如果由于水平空间有限而无法显示某些标签,则最后一个标签会变为“更多”标签,从而需要在另一个页面上显示其他标签。 通常,使用标签在应用程序级别组织信息。...六、工具(Tool Bars) 工具出现在页面的底部,其中包含执行当前视图或内容相关操作按钮。工具是半透明,也可以添加背景颜色,并在用户不需要它们时应该隐藏起来。...工具包含用于执行当前上下文有关动作按钮,例如创建项目,删除项目,添加注释或拍照。标签和工具永远不会在同一视图中同时出现。 提供相应工具按钮

9.8K10

最新iOS设计规范四|3大界面要素:视图(Views)

(Bars) ,可以告诉用户在APP中当前在所在位置、能提供导航,还可能包含用于触发操作和传递信息按钮或其他元素。包括6种:导航、搜索、侧边、状态、标签、工具。...在内容周围使用足够填充,以保持布局整齐并防止内容重叠。 集合方式不适用于文本信息,文本信息可以用列表。相对于集合,文本信息展示在一个可滚动列表中,浏览起来会更简单和有效。 谨慎进行动态布局变更。...浮层适合大屏幕上,可以包含各种元素,包括导航、工具、标签、表格、集合、图像、地图和自定义视图。当浮层出现时,其他视图交互行为会被禁止,直到浮层被取消/关闭。...拆分视图提供选项卡相同快速导航,同时更好地利用了大屏幕。 为每种类型列选择适当样式。对于显示侧主列,请使用侧栏外观。此外观适用于应用程序级导航和集合列表,例如Mail中邮箱。...行可以被分隔为不同标记部分,并且会有索引标记显示在屏幕右侧。页眉可以出现在一节中一项之前,页脚可以出现在最后一项之后。 ? 分组列表。

8.4K31

在 css 图层分析这方面,Chrome Devtools 属实不太行

答案是图层(Layer),浏览器会通过不同图层来渲染,最后合并图层(Composite)成为一帧图像。 那什么样式会新建图层呢?...右边三个按钮分别是显示边框、绘制时显示红色背景,显示页面中所有的层,都勾选上。 显示边框就是会给每个图层加上绿色边框,可以直观地看到有哪些区域是在单独图层渲染。...比如下面这个 gif: 然后,重点来了,这些图层都是为什么创建呢?什么样式导致呢? 点击每一个图层,都可以看到导致图层创建原因! 比如 html,是因为是根元素创建图层,这个没啥好说。...侧边是因为有 z-index 为负值子元素所以创建图层。 导航是因为 3 个原因创建图层:元素有 3D 转换,有 position:fixed 样式,元素可能有其他元素重叠。...而且图层之间上下关系也可以直观看出来: 是不是超方便! 回过头来,我们再来聊下 Chrome Devtools,为什么不用它呢? 因为它确实不咋好用。

62320

实现列表悬浮标签「顶上去」效果

看一下效果图就知道了,注意看顶部悬浮标签切换时效果: image.png 这是我在之前一个自定义侧边索引项目上修改 思路是这样子: 布局里面增加一个和索引 item 长一样 view...,默认显示列表第一项索引字母。...监听列表滑动,当列表可见第一项发生变化时,更新悬浮 view 显示字母为当前可见第一项索引字母。 感觉比想象中简单啊。...可以看出逻辑都是在滑动事件里,我们用 RecyclerView addOnScrollListener 方法监听列表滑动事件,在监听器里面实现上面的逻辑。...最后说明一下,这个代码是使用 RecyclerView 实现,要是用 ListView 的话是有问题

90720

成为技术影响力大牛? CODING Pages 快速搭建个人专属博客

开始搭建静态网站 一、创建 CODING 项目 在 CODING 控制台左侧导航中点击【项目】,来到项目列表页,在项目列表页点击【创建项目】按钮。 ? 选择创建 DevOps 项目。...三、创建代码仓库并推送代码 进入第一步已创建好项目,在左侧导航中选择【代码仓库】,点击左上角【新建代码仓库】按钮。...四、新建静态网站 在项目左侧导航中选择【持续部署—静态网站】,点击左上角【新建网站】按钮。 ? 在新建网站页面中输入网站名,选择代码仓库、部署分支,部署路径。最后选择部署网站类型和节点。...点击【确定】按钮,等待网站部署完成。 五、访问静态网站 网站部署成功后,您可以前往网站基本信息页查看默认访问地址,并通过默认地址访问已经部署好静态网站,快来试试吧~ ?...后续规划,敬请期待 CODING Wiki集成:支持将同一项目下 CODING Wiki 页面直接部署为静态网站页面对外部开放,知识分享更容易; 其他代码托管平台集成:提供Github、Gitlab

1.6K20
领券