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

Facebook:如何应用适合所有系统、带宽以及屏幕

如果你移动应用程序只能在某个地区(比如US)运行良好,那么该如何改善?在@scale conference上,Facebook多次谈及了这个问题。...同时,Facebook还在用户使用设备上做过综合调研:不是所有用户设备都很快,不是所有设备屏幕都很大,同样不是所有人都在一个很快网络下。...为了满足这些用户体验需求,Facebook专门建立了独立应用——使用针对低端设备轻量级动画等策略。而针对那些小屏幕手机拥有者,Facebook更设计了匹配不同屏幕大小应用程序。...因此,缩减图像体积可以减少客户端下载量,从而减少下载时间,特别有益于高延时网络。 为显示层返回一个适当大小图片 在服务器上压缩大小。杜绝给客户端发送大图片,然后客户端去压缩。...在高延时下,预取内容非常重要,因为用户在漫长等待中能得到只是一个空白屏幕

1K90

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

问题 3: 常用视图/控件位于手势交互区域内/附近吗? 这个问题应该简单一些。注意,这个问题也包括那些占据屏幕较大区域,且包括了手势交互区域视图/控件。...如果您读过我们之前文章,应该会记得 "强制系统手势交互区" 是指系统手势始终被优先处理屏幕区域。 对 Android 10 来说,强制交互区域只有一个,那就是屏幕底部。...衍生阅读: 如何 WindowInsets 更易于使用: medium.com/androiddeve… 更优解法 在做完上一步后,您可能会觉得问题已经解决了。...因此,除了直接修改视图边距,我们还可以修改布局,以避免出现空间浪费: △ 将进度条移到视图顶部 在这里,我们将进度条移到了播放控件顶部,完全移出了手势交互区域。...这个限制看似严厉,但如果一个应用能够屏幕整个边缘都不响应系统手势,就会用户感到困惑,这个应用也极有可能被用户卸载。 再次强调,系统导航必须始终保持一致性和可用性。 为什么是 200dp?

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

Human Interface Guidelines —— 导航栏(Navigation Bars)

Navigation Bars 位置 Navigation Bars显示在app屏幕顶部位于status bar(状态栏)下方,并可穿过一系列不同层级屏幕进行导航。 ...内容 当显示一个新屏幕时,一个后退按钮(通常标有前一个屏幕标题)出现在该bar左侧。...split view(分割视图) ·Navigation Bars是半透明,可以具有背景色,并且可以配置为当键盘出现在屏幕上 / 使用手势 / 视图大小调整时隐藏。...但是,如果导航栏标题看起来多余,则可以将标题处留空。 例如,由于第一行内容提供了所需所有上下文,因此Notes不会为当前笔记加标题。 ?...人们知道标准后退按钮可以他们通过层级信息返回。但是,如果您实现了自定义后退按钮,请确保它仍然看起来像后退按钮,直观,与剩下页面交互方式保持匹配,并始终贯穿于您应用程序中。

2.4K110

带你领略 ConstraintLayout 1.1 新功能前言带你领略 ConstraintLayout 1.1 新功能

image 通过 spread,spread_inside 和 packed,链条能够您配置如何布置多个相关视图。...您可以将屏障放置于几个元素开始,顶部,末尾或底部。您可以将其视为制作虚拟组一种方式 ,因为它不会将此组添加到视图层次结构中。...在布置国际化字符串或显示用户生成无法预测大小内容时,屏障非常有用。 ? image 屏障允许您通过几个视图来创建一个约束。 屏障将始终将自己置于虚拟群组之外,并且您可以使用它来限制其他视图。...在上面这个例子中,右视图被限制为始终处于最大文本视图末尾。 群组 有时您需要一次显示或隐藏多个元素。为了支持这个,约束布局增加了群组功能。...这对于像径向菜单这样角度偏移视图将非常有用! ? image 您可以通过指定要偏移半径和**角度来创建径向菜单。 创建圆形约束时,请注意,角度从顶部开始并顺时针进行。

1.7K20

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

本系列文章会着重为开发者们介绍如何应用支持手势导航,涵盖主题如下: 开启全面屏体验,应用内容铺满整个屏幕 处理与系统 UI 视觉冲突 处理与系统手势之间冲突 各种全面屏体验场景,以及如何适配它们...全面屏幕体验 我使用 "边到边" (edge-to-edge) 一词来描述那种将内容铺满整个屏幕,以实现更沉浸视觉体验应用。默认情况下,应用内容绘制范围从顶部状态栏下方开始,延伸至底部导航栏上方。...使用 Android 10 以下设备用户同样能获得更加沉浸体验。我们将它设置为可选,仅仅是为了最大程度地减少开发者工作量和测试量。 在状态栏后面绘制内容 接下来,我们来看看屏幕顶部状态栏。...举个具体例子,比如像下图那样把一张背景图铺在状态栏后面,具体技术实现可以参考类似 AppBarLayout 等布局,并将其放在屏幕顶部。...再强调一次: 是否扩展应用内容绘制区域完全取决于开发者,是可选如何实现 想实现 "边到边" 全面屏体验分三步: 1. 请求进行全屏布局 第一步是系统将我们应用布局扩展至系统栏后方。

12710

带你领略 ConstraintLayout 1.1 新功能

通过 spread,spread_inside 和 packed,链条能够您配置如何布置多个相关视图。...您可以将屏障放置于几个元素开始,顶部,末尾或底部。您可以将其视为制作虚拟组一种方式 ,因为它不会将此组添加到视图层次结构中。...在布置国际化字符串或显示用户生成无法预测大小内容时,屏障非常有用。 ? 屏障允许您通过几个视图来创建一个约束。 屏障将始终将自己置于虚拟群组之外,并且您可以使用它来限制其他视图。...在上面这个例子中,右视图被限制为始终处于最大文本视图末尾。 群组 有时您需要一次显示或隐藏多个元素。为了支持这个,约束布局增加了群组功能。...这对于像径向菜单这样角度偏移视图将非常有用! ? 您可以通过指定要偏移半径和**角度来创建径向菜单。 创建圆形约束时,请注意,角度从顶部开始并顺时针进行。

1.5K20

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

状态栏: 是透明 始终固定在整个屏幕上边缘 API注释 你可以将全应用状态栏风格设计成统一,或者给不同视图控制器定义不同状态栏风格。...想要保证这样图形始终固定在状态栏后面,你可以用视图控制器(view controller)来它固定在滚动内容上一层,又或者可以用滚动视图(scrolling view)来保证图形固定在屏幕顶部。...4.1.2 导航栏 导航栏能够实现在应用不同信息层级结构间导航,有时候也可用于管理当前屏幕内容。 ? ? 导航栏: 是半透明 通常位于屏幕上方,状态栏正下方。...如果需要的话,可以考虑在导航栏位置使用提示语(prompt)来告诉用户在当前屏幕中他们可以做什么。提示语是一句出现在导航栏顶部短句。...工具栏: 是半透明 在iPhone上,工具栏始终位于屏幕底部,而在iPad上则有可能出现在顶部 当键盘被唤起、用户使用了手势、或者当前视图变为竖屏情况下,工具栏可以隐藏。

10.1K51

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

本系列文章会着重为开发者们介绍如何应用支持手势导航,涵盖主题如下: 开启全面屏体验,应用内容铺满整个屏幕 处理与系统 UI 视觉冲突 处理与系统手势之间冲突 各种全面屏体验场景,以及如何适配它们...全面屏幕体验 我使用 "边到边" (edge-to-edge) 一词来描述那种将内容铺满整个屏幕,以实现更沉浸视觉体验应用。默认情况下,应用内容绘制范围从顶部状态栏下方开始,延伸至底部导航栏上方。...使用 Android 10 以下设备用户同样能获得更加沉浸体验。我们将它设置为可选,仅仅是为了最大程度地减少开发者工作量和测试量。 在状态栏后面绘制内容 接下来,我们来看看屏幕顶部状态栏。...举个具体例子,比如像下图那样把一张背景图铺在状态栏后面,具体技术实现可以参考类似 AppBarLayout 等布局,并将其放在屏幕顶部。 ?...再强调一次: 是否扩展应用内容绘制区域完全取决于开发者,是可选如何实现 想实现 "边到边" 全面屏体验分三步: 1. 请求进行全屏布局 第一步是系统将我们应用布局扩展至系统栏后方。

2.4K30

Spring Security 中如何上级拥有下级所有权限?

旧版方案我们现在不讨论了,直接来看当前最新版是怎么处理。 1.角色继承案例 我们先来一个简单权限案例。...: /hello 是任何人都可以访问接口 /admin/hello 是具有 admin 身份的人才能访问接口 /user/hello 是具有 user 身份的人才能访问接口 所有 user 能够访问资源...,admin 都能够访问 注意第四条规范意味着所有具备 admin 身份的人自动具备 user 身份。...剩余其他格式请求路径,只需要认证(登录)后就可以访问。...注意代码中配置三条规则顺序非常重要,和 Shiro 类似,Spring Security 在匹配时候也是按照从上往下顺序来匹配,一旦匹配到了就不继续匹配了,所以拦截规则顺序不能写错。

1.3K20

iOS 11 更大导航 (官方翻译版)

导航栏 导航栏出现在应用程序屏幕顶部状态栏下方,并可以通过一系列分层屏幕进行导航。当显示新屏幕时,通常标有前一屏幕标题后退按钮出现在栏左侧。...有时,导航栏右侧包含一个控件,如编辑或完成按钮,用于管理活动视图内容。在拆分视图中,导航栏可能会出现在拆分视图单个窗格中。...导航栏是半透明,可能具有背景色调,并且可以配置为在屏幕上键入屏幕时隐藏,发生手势或视图调整大小。 ? 考虑在显示全屏内容时暂时隐藏导航栏。当您想关注内容时,导航栏可能会分散注意力。...暂时隐藏酒吧,提供更身临其境体验。查看全屏照片时,照片会隐藏导航栏和其他界面元素。如果您实现这种行为,用户使用简单手势(如轻按)来还原导航栏。...人们知道标准后退按钮可以他们通过信息层次来回溯步骤。但是,如果您实现自定义后退按钮,请确保它仍然像后退按钮,行为直观,与您界面的其余部分相匹配,并始终贯穿您应用程序。

2.8K30

React Native之react-native-scrollable-tab-view详解

当然,我们也可以自定义一个,我们会在下篇文章重点讲解如何去自定义TabBar样式。 注意:每个被包含视图需要使用tabLabel属性,表示对应Tab显示文字。... ); } 2,tabBarPosition(String,默认值’top’) top:位于屏幕顶部...bottom:位于屏幕底部 overlayTop:位于屏幕顶部,悬浮在内容视图之上(看颜色区分:视图有颜色,Tab栏没有颜色) overlayBottom:位于屏幕底部,悬浮在内容视图之上...8,children(ReactComponents) 表示所有视图数组,比如下面的代码,children则是一个长度为6数组,元素类型为Text。... ); } 顶部导航示例 顶部导航代码是比较简单。例如,我们实现上图新闻Tab导航效果。 ?

6.1K60

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

一、导航栏(Navigation Bars) 导航栏出现在页面的顶部位于状态栏下方,可以给一系列层级页面进行导航。当点击进入新页面时,其导航栏左侧会出现一个返回按钮,并带有前一页面的标题。...你可以同时提供自定义蒙版图像,以便系统在转场过渡时使用此蒙版为按钮标题设置动画效果。 不要包括多段面包屑路径。后退按钮始终执行单个操作:返回上一屏幕。...如果在某些情况下可以使用标签,但在其他情况下则无法使用,则应用程序界面将变得不稳定且不可预测。确保所有选项卡始终处于启用状态,并说明为什么选项卡内容不可用。...例如,如果iOS设备上没有歌曲,则“音乐”应用中“立即收听”选项卡将说明如何下载歌曲。 始终在附加视图中切换上下文。...为了使您界面具有可预测性,选择一个选项卡应始终影响直接连接到选项卡栏视图,而不影响屏幕上其他位置视图。例如,在拆分视图左侧选择一个选项卡不应导致拆分视图右侧突然改变。

9.8K10

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

“取消”按钮应出现在动作表单底部。 突出显示破坏性选择。将红色用于执行破坏性或危险操作按钮,并将这些按钮显示在动作表单顶部。 避免操作表滚动。如果表单选项太多,用户必须滚动才能看到所有选项。...一般而言,人们最有可能点击按钮应位于右侧。取消按钮应始终位于左侧。 正确标记取消按钮。取消警报操作按钮应始终标记为“取消”。 识别破坏性按钮。...通过在全屏模式视图中显示信息而不是在弹出窗口中来利用所有可用屏幕空间。 使用“关闭”按钮仅用于确认和指导。...这种样式始终包含至少一组,并且每组始终包含至少一行,并且可以在其后跟一个页眉和一个页脚。插入分组表不包含索引。插入分组样式在常规宽度环境中效果最佳。...右侧子标题:左对齐标题,右对齐子标题,位于同一行。 左侧子标题:右对齐标题,左对齐子标题,位于同一行。 ? 以上所有系统提供标准列表单元格样式,同样都支持图形元素,例如勾选图标或其他指示性控件。

8.4K31

最新iOS设计规范五|3大界面要素:控件(Controls)

详情展开按钮 详情展开按钮可打开视图(通常是模态视图),其中包含与屏幕上特定项目相关信息或功能。...虽然子菜单可以缩短情境菜单并说明用户可以执行命令,但是如果子菜单分还几个层级的话会使得体验变得复杂,并且用户难以导航。 将最常用项放在情境菜单顶部。...当用户打开情境菜单时,他们焦点是位于菜单顶部区域。将最常用项应该放在菜单顶部,以便用户及时找到他们正在寻找项。 使用分隔符对相关菜单项进行分组。创建可视分组可以帮助用户更快地浏览菜单。...编辑操作可撤消。在编辑菜单上执行操作之前不需要确认。但用户在执行操作后可能改变主意,所以始终要实现撤消和返回功能。 使用有用自定义命令扩张编辑选项 。...如果你应用需要显示超过20个页面,请考虑使用其他排列方式 - 例如网格 - 启用非顺序导航。 页面控件显示在屏幕底部中心。页面控件应始终位于内容底部和屏幕底部之间区域,并保持居中。

8.5K30

Macbook Pro 2017 13-inch

接下来看看TouchBar开发: 就是这个小屏幕 Touch Bar 是一种 Retina 显示屏和输入设备,位于支持 MacBook Pro 机型键盘上方。...Touch Bar 中动态控件人们可以与主屏幕内容进行交互,并根据当前上下文提供对系统级和特定于应用程序功能快速访问。...并非所有设备都有触控栏,如果他们愿意,人们可以禁用触控栏中应用程序控件。始终为人们提供使用键盘或触控板执行任务方法。 在全屏环境中,考虑在触控栏中显示相关控件。...在全屏模式下,应用程序通常会隐藏屏幕控件并仅在人们通过例如将指针移动到屏幕顶部来调用它们时才显示它们。如果您支持全屏,您可以使用触控栏人们持续访问重要控件,而不会分散他们对全屏体验注意力。...有关指导,请参阅控件和视图。 对触控栏交互做出响应。即使您应用正忙于工作或更新主屏幕,当人们使用触控栏控件时,也会立即做出响应。 如果可能,人们应该能够在触控栏中开始和完成一项任务。

1.1K40

Direct3D 11 Tutorial 4: 3D Spaces_Direct3D 11 教程4:3D空间

视图转换 顶点转换为世界空间后,视图转换将这些顶点从世界空间转换为视图空间。 回想一下之前讨论,观看空间是世界从观众(或相机)角度出现。 在视图空间中,观察者位于沿正Z轴向外看原点。...我们只需要告诉它观察者在哪里,在哪里看,以及表示观察者顶部方向,也称为向上矢量,以获得相应视图矩阵。 投影转换 投影变换将顶点从诸如世界和视图空间3D空间转换为投影空间。...我们只提供4个参数-FOVy,Aspect,Zn和Zf-并返回一个矩阵,它可以完成上面提到所有必要操作。 FOVy是Y方向视野。 Aspect是宽高比,即视图宽度与高度比率。...我们希望三角形位于原点上,与XY平面平行。这正是它如何存储在对象空间中顶点缓冲区中。因此,世界变换不需要做任何事情,我们将世界矩阵初始化为单位矩阵。...我们可以使用向上矢量[0 1 0]调用 XMMatrixLookAtLH()来方便地为我们计算视图矩阵,因为我们希望+ Y方向始终保持在顶部

96630

Material Design — 菜单(Menus)

每个菜单项都包含不关联选项或操作,可影响app,页面或视图中已选定元素。 菜单不应该被用作app内导航主要方法。 ?...菜单位于触发菜单元素正上方,且使得当前选择菜单项出现在触发出菜单顶部(如下图)。 ? 不要显示所选菜单项副本(如下图)。 ?...---- 简单菜单(Simple Menus) 移动端或pc 使用列表中简单菜单显示特定列表项选项。 垂直对齐 靠近屏幕边缘时,简单菜单将垂直重新对齐,以使所有菜单项完全可见。...向上展开简单菜单 ·不要在简单菜单弹出第一个选项上放列表中非已选项(如下图)。 ? ·但在靠近屏幕边缘时,简单菜单会重新定位其垂直对齐方式,以便所有菜单项都完全可见。 ?...·菜单宽度取决于字符串长度,在移动设备上定义为56dp单位倍数。 ·简单菜单始终屏幕左侧和右侧保持16dp留白(手机)或24dp留白(平板)。 ?

5.8K100

可折叠设备桌面模式

这是一个简单媒体播放器案例,它会自动调节尺寸以避免折叠处出现在画面中间,并且调整播放控制组件位置,从屏幕完全展开时嵌入画面中,变为当屏幕部分折叠时显示为单独面板。...由于 ReactiveGuide 是水平,此属性指的是参考线到父布局底部距离。 应用感知屏幕折叠 现在进入最重要部分: 如何获知您手机何时进入了桌面模式,并获取到折叠处位置呢?...// 不可折叠屏幕或是位于可折叠主屏但处于分屏模式。...ConstraintLayout.getSharedValues().fireNewValue(R.id.fold, fold) binding.playerView.useController = false // 使用位于屏幕底部一侧控件...在其他所有情况下 (非全屏) 您需要考虑导航栏或屏幕上其他 UI 组件占据空间。 为了移动参考线,您必须指定它距离父布局底部距离。

2.3K30

最新iOS设计规范二|7大应用架构

如果您应用同时支持纵向和横向模式,则应使用设备的当前方向启动。如果您应用仅在一种方向上运行,则应始终以该方向启动,并在必要时人们旋转设备。...父视图或上一张卡片顶部边缘在当前卡片后面可见,这样可以帮助人们记住他们在打开卡片时暂停任务。...人们通过以下方式关闭卡片: 从屏幕顶部向下滑动 卡内容滚动到顶部时,可以从屏幕任意位置向下滑动 轻按一个按钮 工作表常用在无法实现复杂任务、非沉浸式模式和内容。...始终要有取消/关闭模态视图按钮。例如:你可以使用“完成”或“取消”。至少有一个按钮以确保辅助技术访问模态视图,并代替手势关闭模态视图。 必要时,通过在关闭模式视图之前进行确认来帮助人们避免数据丢失。...一些APP会结合多种导航样式,例如:使用平级导航应用可以在每个类别中使用分层导航。 导航设计规范如下: 始终提供清晰明确路径。用户应该知道他们在APP中位置以及如何到达下一个目的地。

2.6K20
领券