首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

从零开始的Android:常见的UI设计模式

2.导航和动作 虽然您刚刚了解了可以在应用程序主屏幕使用的几种用户界面模式,但您可能仍需要一种导航至应用程序内其他部分的方法。...但是,如果要在选项卡中放入五个或更多项目,则应考虑将导航操作移到抽屉中。 根据Android的材料设计指南,选项卡也可以存在于屏幕底部,如Google+应用程序所示。...导航抽屉 导航抽屉是一个视图,可以从应用程序的侧面滑出,以便向用户显示选项列表。...工具列 您可能已经注意到,Android应用程序中的大多数页面在屏幕顶部都包含一个工具栏。...至少,该工具栏包含该部分或应用程序的标题,但是工具栏设计模式还有助于将操作按钮直接放置在工具栏或溢出菜单中,以允许用户在应用程序的该部分中执行任务。

2.6K20

Flutter容器类组件

由于矩阵变化只会作用在绘制阶段,所以在某些场景下,在UI需要变化时,可以直接通过矩阵变化来达到视觉的UI改变,而不需要去重新触发build流程,这样会节省layout的开销,所以性能会比较好。...Scaffold(脚手架) 5.1 Scaffold介绍 一个完整的路由页可能会包含导航栏、抽屉菜单(Drawer)以及底部 Tab 导航菜单等。...下面构造一个完整的路由页面对其进行讲解: 导航导航栏右侧分享按钮 抽屉菜单 底部导航栏 悬浮按钮 class HomePage extends StatefulWidget { const HomePage...key, this.leading, //导航栏最左侧Widget,常见为抽屉菜单按钮或返回按钮。...//其它属性见源码注释 }) 初始的导航栏只有文字,如果给Scaffold添加了抽屉菜单,则会给Scaffold首页导航栏左侧增加菜单按钮,正如上面所示。

3.8K40

6详解AppBar小部件

它可用于容纳搜索字段、以及在页面之间导航的按钮,或者只是页面标题。由于它是一个如此常用的组件,因此 Flutter 为该功能提供了一个名为AppBar的专用小部件。...示例包括返回一页的导航箭头或打开抽屉的菜单图标。 当上一条路线可用时,导航箭头会自动出现。...当我们将 添加Drawer到Scaffold时 ,会分配一个菜单图标leading来打开抽屉。...工具栏高度和不透明度 最后,我们有工具栏属性。工具栏包含文字,图标,按钮,和其他任何公司的前景,除了小部件,如Container和Image。...this.brightness,//AppBar亮度 有黑白两种主题 this.iconTheme,//AppBar上图标的样式 this.actionsIconTheme,//AppBaractions

16.3K10

基础篇章:关于 React Native 之 DrawerLayoutAndroid 组件的讲解

Android 中的 DrawerLayout 就是一个抽屉导航组件,所以这个组件的功能当然也是一样的。...我们的这个抽屉导航视图一开始是看不见的,就像抽屉一样,你不拉开抽屉你看不到东西,所以导航视图可以从drawerPosition指定的窗口侧面拖拽出来,并且抽屉的宽度可以使用drawerWidth属性来指定...抽屉可以有3种状态: dle(空闲),表示现在导航没有任何正在进行的交互。 dragging(拖拽中),表示用户正在与导航条进行交互。...renderNavigationView 该方法用于渲染一个可以从屏幕一边拖入的导航视图 statusBarBackgroundColor color 使抽屉导航覆盖整个屏幕,并绘制状态栏的背景,使其能够在覆盖到状态栏...它将只对API 21以上的效果 DrawerLayoutAndroid 方法 openDrawer(0) 打开抽屉导航 closeDrawer(0) 关闭抽屉导航 实例演示 还是老样子,看代码前,我们先看看效果图

2.4K70

Flutter | 容器组件

实际,只有这样才能保证 父限制与子限制不冲突 UnconstrainedBox 该组件不会对子组件产生任何限制,它允许子组件按照本身大小绘制,一般情况下,我们很少使用此组件,但在 去除 多重限制的时候也许会有帮助..., ), ), 复制代码 实际就是给最外层套了一个Padding Scaffold,TabBar,底部导航 一个完整的路由页面可能会包含导航栏,抽屉菜单(Drawer) 以及底部 Tab 导航栏菜单等...,导航栏的按钮 2,抽屉菜单 3,底部导航 4,右下角悬浮按钮 实现代码如下: class ScaffoldRoute extends StatefulWidget { @override State...MyDrawer:抽屉菜单 BottomNavigationBar:底部导航栏 FloatingActionButton:漂浮按钮 AppBar Appbar 是一个 Material 风格的导航栏,...通过他可以设置标题,导航栏菜单,导航底部tab等 AppBar({ Key key, this.leading, //导航栏最左侧Widget,常见为抽屉菜单按钮或返回按钮。

5.5K10

Android Q 手势导航背后的故事

为什么需要手势导航? 全屏体验是 Android 最大的亮点之一,因此,我们希望应用开发者和 Android 合作伙伴们能够在 Android 设备实现创意十足的新型屏幕体验。...,用户很容易发生误触事件) 手势导航有助于提供沉浸度更高的应用体验: 大屏窄边已成为当下主流硬件趋势,而手势导航能够最大限度减少系统在应用的内容之上绘制视觉元素 (例如: 主屏/返回键和底部导航栏),从而为用户创造更具沉浸感的体验...在此基础,我们建立了许多原型,并对其进行了全面的测试,测试项目包括合意性、使用速度、人体工程学等等。...比如说,我们发现 3% 到 7% 的用户 (具体比例因应用而异) 通过侧滑手势打开应用导航抽屉,其余用户则选择点击汉堡形菜单按钮来弹出抽屉。...我们之所以推出手势导航,主要是为了在 Android 实现标准化的用户体验。

2.1K50

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

任务调度器 JobScheduler Android 5.0 任务服务 JobService Android 5.0 v4 下拉刷新布局 SwipeRefreshLayout Android 5.0 抽屉布局...cardview-v7 卡片视图 CardView Android 5.0 palette-v7 调色板 Palette Android 5.0 design 提示条 Snackbar Android 5.0 导航视图...FloatingActionButton Android 5.0 底部弹窗 BottomSheetBehavior Android 6.0 应用栏布局 AppBarLayout Android 5.0 可折叠工具栏布局...v4库默认会被编译进App的安装包,所以它不需要系统内核支持,可直接运行在4.0之后的所有系统,并且App工程无需手工导入v4库。...使用v4控件唯一需要注意的地方,是布局文件中要引用完整路径的控件名称,如抽屉布局android.support.v4.widget.DrawerLayout、下拉刷新布局android.support.v4

1.2K20

iOS小技能:适配安全区域距离(safeAreaInsets)

引言 应用场景1:自定义导航栏内容,导航栏显示公告和标题 应用场景2:自定义视图底部工具栏 应用场景3: 适配上拉加载更多控件 _vcView.tableView.mj_footer.ignoredScrollViewContentInsetBottom...但是如果一个view没有在视图层次结构中或未在屏幕显示, 则safeAreaInsets为0; 1.1 问题 视图底部工具栏显示到安全区域之外 1.2 判断安全区域距离 #define isIphoneX...= [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, kWidth, kStatusBarHeight)]; 2.2 应用场景2:自定义视图底部工具栏...(weakSelf.view); } }]; 2.3 应用场景3: 适配上拉加载更多控件 问题:没有拉的时候加载更多控件的文案也显示出来了...offset(- 0); make.top.equalTo(weakSelf.view).offset(0); if(isHasSafeAreaInsets()){// 避免没有拉的时候加载更多控件的文案也显示出来了

3.5K30

Flutter 全栈式——页面框架

查找不到时回调 onUnknownRoute RouteFactory onGenerateRoute 无法生成路由时调用 navigatorObservers List 导航的监听器列表...FloatingActionButtonAnimator 悬浮按钮动画 persistentFooterButtons List 在底部显示的一组按钮 drawer Widget 开始部分的(左边)抽屉菜单...endDrawer Widget 结束部分的(右边)抽屉菜单 drawerScrimColor Color 打开侧滑菜单时遮盖在主要内容区的蒙层颜色 backgroundColor Color 内容的背景颜色...默认为 ThemeData.scaffoldBackgroundColor bottomNavigationBar Widget 显示在底部的导航栏 bottomSheet Widget 底部永久性显示的提示框...flexibleSpace显示在AppBar的下方,高度和AppBar高度一样,可以实现一些特殊的效果 [cf22fa2aav.png] 文档地址 示例 BottomAppBar BottomAppBar 是一个不规则底部工具栏

2.9K30

android侧滑菜单控件DrawerLayout使用方法详解

使用步骤: 创建一个DrawerLayout 为了添加导航抽屉,你需要在你的布局界面中声明一个DrawerLayout对象作为布局的根节点。...它包含了两个子节点:一个FrameLayout它包含了主要内容(在运行时将会被Fragment替换) 和 一个ListView作为导航抽屉,上面titlebar 上图标,负责打开、关闭抽屉; <?...主内容View被设置成匹配父View的宽和高,因为当导航抽屉隐藏的时候它要填充整个UI。...为了保证用户无论怎样都能看到主内容的一部分,导航抽屉的宽度不能超过320dp 初始化Drawer List 在你的Activity中,要做的第一件事是初始化导航抽屉的列表项。...当用户选择了抽屉列表里面的一个Item时, 系统调用onItemClickListener的onItemClick(), 给setOnItemClickListener().

2.2K10

模态对话框-B 类产品设计细节:对话框 vs 抽屉

抽屉的模态 vs 非模态   项目管理工具 Jira 的帮助文档入口在页面右侧,点开后从右侧划入非模态抽屉展示内容,这样便于用户进行对照查看和操作:   搜索功能入口在页面左侧中的导航中,点开后从左侧划入模态抽屉进行交互...模态抽屉 vs 非模态对话框   一案例来自之前的 Jira,当前版本的 Jira 对导航和交互模式进行了调整,例如通知模块由模态抽屉改为了非模态对话框,出现的位置均遵循就近原则,体验非模态对话框更加轻量...原来由左侧划入的模态抽屉,点击左侧导航后从左侧划入:   当前版本使用非模态对话框模态对话框,点击顶部导航后在 icon 下方出现:   4....模态抽屉 vs 气泡卡片   文档工具 中,产品功能和交互都很简洁轻量,没有出现对话框组件,在文档中插入图片或文件、编辑导航、导入文档等稍重的操作使用抽屉,而插入表情、标签等位置指向明确、操作很轻的使用气泡卡片...注释和举例   必要的情况下,在抽屉叠放对话框也是可以的,例如在抽屉操作过程中有非常重要的信息要即刻告知用户,可以通过对话框展示。

1.7K20

Flutter 可折叠边栏

一个可在Flutter应用中创建可折叠的侧边栏导航抽屉的 Flutter 插件。...原文链接:https://medium.com/flutterdevs/foldable-sidebar-in-flutter-7addcfb8304f 移动应用程序具有多种方法来处理屏幕之间的导航,例如导航抽屉...利用Material Design的移动应用程序有两个必不可少的导航选择。这些导航是“选项卡和抽屉”。抽屉是选项卡的一种可选选择,因为有时移动应用程序没有足够的空间来帮助选项卡。 抽屉是不可见的侧屏。...它显示了当用户点击浮动操作按钮时,抽屉将以折叠方式显示/隐藏。它会显示在您的设备。 实现 添加依赖 将依赖项添加到pubspec.yaml文件。...在内部,我们将添加drawerBackgroundColor滑动到屏幕时,是指抽屉的背景色。我们将添加抽屉方式,以创建一个CustomSidebarDrawer()类。

6.2K50

Android性能优化:过渡绘制解决方案

过渡绘制 屏幕某一像素点在一帧中被重复绘制多次,就是过渡绘制。 下图中多个卡片跌在一起,但是只有第一个卡片是完全可见的。背后的卡片只有部分可见。...API来绘图以及对画布做一些操作,clipRect方法用来裁切画布的一个矩形区域,该矩形区域用Rect对象来描述。...典型的例子,抽屉布局,找了网易云音乐开刀: ? 注意观察左侧抽屉打开的时候,抽屉布局和背后布局重叠在一起了,此时整个屏幕一多半都变成了红色,过渡绘制严重。...在抽屉布局弹出时,抽屉布局是不透明的,也就是说抽屉布局背后挡住的内容布局是不需要绘制的,而网易云进行了绘制,导致抽屉布局所在区域的像素点绘制了多次。...背景为不透明、抽屉高度和父布局高度一致时,取得抽屉视图左、、右、下边缘在canvas中的位置信息。

2.1K10

2. Jetpack源码解析---Navigation为什么切换Fragment会重绘?

背景 先来看一下Navigation组件在官方文档的介绍: 今天,我们宣布推出Navigation组件,作为构建您的应用内界面的框架,重点是让单 Activity 应用成为首选架构。...它可以自动构建正确的“向上”和“返回”行为,包含对深层链接的完整支持,并提供了帮助程序,用于将导航关联到合适的 UI 小部件,例如抽屉导航栏和底部导航。...2.Fragment切换 通过现象分析,发现当切换NavigationView中的menu菜单来切换Fragment时,DrawerLayout抽屉关闭有一个短暂的动画(具体的这里就不分析了,感兴趣的可以自行查看...4.1 建议 这里我的建议是:如果你的每个Fragment真的每次都需要重新绘制的话,你可以考虑使用Navigation组件来实现,毕竟通过Navgation组件真的很方便帮助我们切换导航,而且虽然布局会重新绘制...我还发现一个问题,就是Play商店,现在就是这样的情况,抽屉栏中的Item每个基本都是重新绘制,而且第一个Item我的应用和游戏切换的时候就会有很明显的卡顿和闪屏,猜测Google play 商店具体是不是使用的

2.2K40

【React Native 安卓开发】----侧边栏的实现DrawerLayoutAndroid以及第三方框架react-native-side-menu的使用【第六篇】

抽屉(通常用于导航切换)是通过renderNavigationView方法渲染的,并且DrawerLayoutAndroid的直接子视图会成为主视图(用于放置你的内容)。...导航视图一开始在屏幕并不可见,不过可以从drawerPosition指定的窗口侧面拖拽出来,并且抽屉的宽度可以使用drawerWidth属性来指定。...onDrawerClose function 每当导航视图(抽屉)被关闭之后调用此回调函数。 onDrawerOpen function 每当导航视图(抽屉)被打开之后调用此回调函数。...onDrawerSlide function 每当导航视图(抽屉)产生交互的时候调用此回调函数。 onDrawerStateChanged function 每当抽屉的状态变化时调用此回调函数。...抽屉可以有3种状态: idle(空闲),表示现在导航没有任何正在进行的交互。 dragging(拖拽中),表示用户正在与导航条进行交互。

6.6K40

大屏时代的生态变迁,看平板手机的拇指热键与界面布局

虽然根据Android设计规范的要求,我们应该在小屏手机中将App的导航与功能控件放置在顶部,以避免与底部的系统导航栏产生冲突,但是在大屏设备,可以将一些高频控件从标准的Action Bar中移出,并放置到屏幕底部...不过毕竟单一按钮的尺寸较小,不会像在系统导航堆叠一层工具栏那样带来很大的影响。在Android的UI体系当中,这种悬浮按钮称为“FAB”(Floating Action Button)。...实际,早已普及的下拉刷新模式也是相同的道理,用户不必与界面远端的某个控件产生交互,只要直接在内容上进行手势操作即可。 对于移动版本的网页,仍然建议使用前文中介绍过的锚点链接导航模式。...我总会在用户研究中观察到这样的现象:对移动设备的网页,除非用户在主要内容区域实在无法找到自己需要的信息,否则他们几乎不会想起主导航。...与系统提供的上下移动界面的方式不同,在App或网页内部,一种更具实践性的做法是在界面边缘放置某种“抽屉把手”,形如按钮或Tab,点击之后即可展开整个面板。 ?

2.3K10
领券