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

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

如果您有多个在某种程度上相关但具有不同类别的列表,那么对每个类别使用带有选项卡的ViewPager可能是导航应用程序的有效解决方案。...当您的应用程序中只有几个部分时,此模式很有用,因为它为用户提供了一种快速简便的方法来更改视图。 但是,如果要在选项卡中放入五个或更多项目,则应考虑将导航操作移到抽屉中。...根据Android的材料设计指南,选项卡也可以存在于屏幕底部,如Google+应用程序所示。 导航抽屉 导航抽屉是一个视图,可以从应用程序的侧面滑出,以便向用户显示选项列表。...工具列 您可能已经注意到,Android应用程序中的大多数页面在屏幕顶部都包含一个工具栏。...至少,该工具栏包含该部分或应用程序的标题,但是工具栏设计模式还有助于将操作按钮直接放置在工具栏或溢出菜单中,以允许用户在应用程序的该部分中执行任务。

2.7K20

Android中TextView文字设置不同的颜色

在项目的过程中会遇到在一行文字中,部分功能需要不同的文字颜色来展示,下面介绍两种方式实现: 效果图: [wqs2rn595h.png] 这里写图片描述 方式一: 用SpannableStringBuilder...blackSpan,12, 17, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); tv.setText(builder); 其中,”只会玩战士回复冷云他大叔:有钱任性” 为你要改变的文本...0为文本颜色改变的起始位置,5为文本颜色改变的结束位置。最后一个参数为布尔型,可以传入以下四种。...color='#4d8ade'>冷云他大叔:啊哈哈哈或"; tv.setTextSize(15); tv.setText(Html.fromHtml(str)); ---- 小编整理了一份Android...电子书籍,需要的童鞋关注公众号回复:"e_books" 即可获取哦!

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

    推荐系列02,每个职场中的你都有必要了解的推荐系统常识

    这是一种很通用的做法,并且在大规模数据集情况下,很多实际的产生过程中喜欢使用这种机制。而用户的画像,或者更具体点用户的兴趣标签如何构建呢?...推荐算法概述-其他 其实在我们实际的操作过程中,并不会严格的依赖于这种条条框框、只要合理即可行,比如我们完全可以把推荐问题转化为分类问题,针对于每个待选项,他都是YES OR NO的问题,即一个二值分类...随着不断迭代,子子孙孙无穷尽也,这样得到推荐的商品就会集中在少部分商品中,而大部分长尾商品是沉寂的,一个推荐系统如果长时间处于长尾效应中,造成推荐疲劳,其推荐效果就会减弱。...但是,实际的生产环境中,任何一点转化波动的影响都是极其严重的,谁也不敢拿实际生产开玩笑。...并且,通常,在实际的环境中,或许我们会同时有十多个甚至是几十个新模型在同时实验,每个模型调整的因子都不一样,最终选择最适合的因素进行调整,达到效果最优,这也就是AB测试机制的魅力所在。

    93220

    Android开发-Listview中显示不同的视图布局

    使用场景 在重写ListView的BaseAdapter时,我们常常在getView()方法中复用convertView,以提高性能。...convertView在Item为单一的同种类型布局时,能够回收并重用,但是多个Item布局类型不同时,convertView的回收和重用会出现问题。...2.ListView包含不同Item的布局 我们需要做这些工作:   1)重写 getViewTypeCount() – 该方法返回多少个不同的布局   2)重写 getItemViewType...(int) – 根据position返回相应的Item   3)根据view item的类型,在getView中创建正确的convertView 3.案例 import java.util.ArrayList...getCount() {       // TODO Auto-generated method stub       return listString.size();     }     //每个

    2.3K30

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

    palette-v7 调色板 Palette Android 5.0 design 提示条 Snackbar Android 5.0 导航视图 NavigationView Android 5.0 协调布局...Android 6.0 以上的新控件,在项目中使用的时候,可分为三大类: 1、第一类是内核提供的控件,位于SDK的android.jar中。...这个与系统版本有关,每个版本的android.jar是固定的,有在该内核中定义的控件才能正常调用,没在内核中定义的控件在运行时会扔出类找不到的异常。...*系统的手机是无法正常调用这两个控件的。 2、第二类是v4兼容库提供的控件,位于SDK的android-support-v4.jar中。...使用v4控件唯一需要注意的地方,是布局文件中要引用完整路径的控件名称,如抽屉布局android.support.v4.widget.DrawerLayout、下拉刷新布局android.support.v4

    1.3K20

    android Compose中沉浸式设计和导航栏的处理

    简单写一篇文章捕获一下焦点 Material Design风格的顶部和底部导航栏 Compose中Material Design风格的设计我们的做法如下: 1、使用Scafoold作为页面的顶级,Scafoold...中承载topbar和bottombar分别作为顶部导航栏和底部导航栏。...状态 处理前: 处理后: 结论是经过我们的处理后解决了状态栏的遮挡 BottomBar设计 实现方式 因为使用ProvideWindowInsets包裹后底部导航栏顶到了底部,所以需要填充一个底部导航栏高度的...状态 处理前: 处理后: 结论是经过我们的处理后解决了底部导航栏的遮挡问题 状态栏和底部导航栏颜色的处理 状态栏和底部导航栏颜色设置 依赖 implementation "com.google.accompanist...如何处理内容部分超出底部导航栏的区域 使用WindowCompat.setDecorFitsSystemWindows(window, false)处理了页面后,Scafoold的内容区域也会被顶到底部导航栏的下方

    3.2K20

    iOS 与 Android 的APP 设计差异

    在Android应用中被大家熟知的导航模式是抽屉和标签形式的组合。 抽屉导航其实是一个菜单,通过点击汉堡图标,然后从左侧或右侧滑出。...左侧就是抽屉导航;右侧是标签栏 在Material Design中还有一个组件叫做底部导航。这个组件对于安卓原生应用来说也非常重要。底部的菜单项很容易点击和操作。...但是安卓规范其实不建议同时使用底部导航和标签,因为它可能会在导航时引起混乱。 底部导航(Material Design) 在Apple的人机交互规范中,没有类似抽屉菜单的标准导航控件。...iOS的两种常见导航形式,分段控制和底部标签栏 虽然在两个操作系统中都有类似的功能(切换标签和分段控制,底部导航和标签栏),但导航形式仍然是iOS和Android之间的主要区别之一。...每个平台的交互方式各有其独特性。好的设计是尊重不同平台用户习惯的设计。在为iOS和Android设计移动应用时,一定要记住平台之间的差异,这样才能设计出满足用户期望的应用。

    3.5K10

    导航设计的10种模式

    04 宫格导航 描述: 宫格式导航被广泛应用于各平台系统的中心页面; 用在二级页作为内容列表的一种图形化形式呈现,或作为一系列工具入口的聚合; 用户频繁切换的概率是比较低; 在不同的文章中可能被称作:跳板...一般位于产品顶部,通过点击呼出导航菜单; 通常用来筛选同一信息模块下不同类别的信息,或者快速启动某些常用的功能模块,而不需要频繁的页面跳转 ; Android中对应的控件为spinner控件,但该控件用于同一类别下不同视图之间的切换...iOS中下拉菜单为自定义控件,可以实现不同类别之间的切换; 下拉导航还有一种变式,就是下来菜单中展示两级甚至多级,一般在电商产品中比较常见,因为品类和筛选条件众多。 ?...与宫格导航类似,常用于二级页面,不会默认展示任何实质内容,所以通常app不会在首页使用它; 无论ios开发和android 都有现成的列表布局插件和模板。 ?...每种导航都有其存在的意义,无所谓对错,只有合适与否。真正在实际项目中,还是得根据产品的实际情况综合去运用。

    3.6K40

    安卓软件开发:使用Jetpack Compose实现DrawerMenuApp

    一、项目背景 在现代应用中,导航是关键元素,特别是使用侧边栏(Drawer Menu)切换不同页面的场景。...• 在代码中,我们通过 ModalDrawerSheet 包裹所有的菜单项,点击其中的任意一项可以触发不同的操作。...(3) 适用场景: • 比如一个购物应用中的导航栏,当用户点击左上角的菜单按钮时,抽屉滑出,显示购物车、收藏夹、账户信息等。 二....(2) 解释: • PermanentDrawerSheet 与前两种抽屉不同,它是固定在界面左侧的,用户无法将它关闭。它适合那些需要一直显示导航的场景,比如电子邮件客户端或者文件管理器。...五、总结 通过这个DrawerMenuAppDemo,展示了如何在Jetpack Compose M3中实现一个带有抽屉菜单的安卓应用,添加更多的菜单项以及对应的页面功能。

    57850

    深入浅出 NavigationUI | MAD Skills

    在本文中,我们将为大家讲解另外一个用例,即类似操作栏 (Action Bar)、底部标签栏或者抽屉型导航栏之类的 UI 组件如何在应用中实现导航功能。...我需要在应用中增加一些页面,所以有必要使用抽屉式导航栏或者底部标签栏来辅助用户导航。但是我们该如何使用这些 UI 组件来集成导航功能呢?通过点击监听器手动触发导航动作吗? 不需要!无需任何监听器。...NavigationUI 类通过匹配目标页面 id 与菜单 id 实现不同页面之间的导航功能。让我们深入探索一下它的内部机制吧。...NavigationUI 依赖 MenuItem 的 id,用它与导航图中目的页面的 id 进行匹配。我还为每个目的页面设置了图标和标题。...Donut Tracker 应用并不需要底部标签栏或者抽屉式导航栏,但是添加了新的功能和目的页面后,NavigationUI 可以很大程度上帮助我们处理应用中的导航功能。

    3K30

    Anroid Wear OS 手表应用开发 - UI

    Wear UI 智能手表相对手机来说,由于使用场景不同,且屏幕较小,所以应用的设计、交互和手机是有些区别的。相对来说,布局会更简洁,更多地使用滑动手势进行操作。...> 复制代码 这样可以在保证方形表盘不受影响的情况下,圆形布局的内容,不会超过显示边界: 导航抽屉栏 为了节省宝贵的显示空间,通常手表应用是没有标题栏的,在使用 ViewPager 的时候,也没有 TabLayout...操作抽屉栏 当需要对当前页面进行一些操作的时候,但页面里又没有空间再放按钮了怎么办?既然可以从顶部下拉出导航栏,要不在底部上拉出一个操作栏?...自定义抽屉栏 导航栏 WearableNavigationDrawerView 和 操作栏 WearableActionDrawerView 用起来很简单,但是它们的样式是固定的,一个只能显示图标加标题...它包裹了抽屉栏的主视图 drawer_content 和关闭时露出部分的视图 peek_view。

    2.6K30

    Android中架构X64与X32的不同

    1.Android中架构X64与X32的不同。 众所周知,安卓支持3类处理器(CPU):ARM, Intel和MIPS。其中ARM无疑被使用得最为广泛。...MIPS在32位和64位嵌入式领域中历史悠久,获得了不少的成功,可目前Android的采用率在三者中最低。 处理器(CPU) 中央处理器(CPU)是你智能设备的大脑。...异构计算 ARM的big.LITTLE架构是一项Intel一时无法复制的创新。在big.LITTLE架构里,处理器可以是不同类型的。传统的双核或者四核处理器中包含同样的2个核或者4个核。...一个双核Atom处理器中有两个一模一样的核,提供一样的性能,拥有相同的功耗。ARM通过big.LITTLE向移动设备推出了异构计算。这意味着处理器中的核可以有不同的性能和功耗。...流水线的好处在于,当前指令在第二步的时候,下一条指令已经处于第一步。当前指令在第三步中执行的时候,下一条指令正处于第二步,而下下条指令处于第一步中,如此循环。

    1.2K10

    Android Q 手势导航背后的故事

    尤其是对开发者而言,碎片化 (即不同的 Android 设备具备不同的手势) 才是最棘手的问题。...应用抽屉和其它侧滑操作 经过多番权衡与谨慎考量,我们最终决定将侧滑设为返回操作,但是在此过程中,尤其是在降低手势对应用的影响方面,我们作出了许多艰难的取舍。...比如说,我们发现 3% 到 7% 的用户 (具体比例因应用而异) 通过侧滑手势打开应用导航抽屉,其余用户则选择点击汉堡形菜单按钮来弹出抽屉。...进一步的研究表明,在适应新的系统导航之前,用户会经历一个明显的调整阶段 (以便熟悉各种不同的导航操作)。...在 Android Q 模式下,返回手势在最初 3 天的使用频率较低,但过了这段时间之后,用户每天进行返回操作的次数将与三键导航及 Android P 导航中的次数持平。 开发者该如何应对?

    2.2K50

    ApacheCN 安卓译文集 20211225 更新

    、音效和旋纽小部件 二十四、设计模式、多重布局和片段 二十五、构建简单的图片库应用 二十六、使用导航抽屉和片段的高级 UI 二十七、安卓数据库 二十八、临别赠言 Kotlin 安卓编程初学者手册 零、...二十五、带分页和滑动的高级用户界面 二十六、带有导航抽屉和片段的高级用户界面 二十七、安卓数据库 二十八、临别赠言 如何使用 Kotlin 构建安卓应用 零、前言 一、创建您的第一个应用 二、构建用户屏幕流...四、把你的树莓派变成媒体中心 五、使用 Pi 的未接来电 六、汽车中的树莓派 安卓游戏开发手册 零、前言 一、安卓游戏开发 二、不同安卓平台介绍 三、不同的安卓开发工具 四、安卓开发风格和行业标准...四、从安卓设备中逻辑提取数据 五、从安卓设备中物理提取数据 六、从安卓设备恢复删除的数据 七、安卓应用的取证分析 八、安卓取证工具概述 精通 Android Studio3 零、前言 一、工作空间结构...代码 使用安卓片段创建动态 UI 零、前言 一、片段和用户界面模块化 二、片段和用户界面灵活性 三、片段生命周期和专业化 四、使用片段事务 五、创建丰富的导航 六、片段与材质设计 Unity 安卓游戏开发学习手册

    7.2K20

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

    虽然根据Android设计规范的要求,我们应该在小屏手机中将App的导航与功能控件放置在顶部,以避免与底部的系统导航栏产生冲突,但是在大屏设备上,可以将一些高频控件从标准的Action Bar中移出,并放置到屏幕底部...在Android中,将交互元素堆叠在屏幕底部的做法确实容易增加误操作的可能性,这是客观事实。...与分体式Action Bar模式类似,位于屏幕底部的、有可能导致误操作的悬浮按钮同样体现着妥协的初衷。不过毕竟单一按钮的尺寸较小,不会像在系统导航栏上堆叠一层工具栏那样带来很大的影响。...例如,可以将Tab导航放在内容上方,但使其切换能够被内容区域的左右滑动手势控制,这也是一种变相的拇指友好模式。 ? Android的“通讯录”是一个典型的例子。...与系统提供的上下移动界面的方式不同,在App或网页内部,一种更具实践性的做法是在界面边缘放置某种“抽屉把手”,形如按钮或Tab,点击之后即可展开整个面板。 ?

    2.4K10

    Flutter 全栈式——页面框架

    出现在Android任务管理器的程序快照之上 ,或iOS的程序切换管理器中 onGenerateTitle GenerateAppTitle 与title一样,但含有一个context参数用于做本地化...,将整个页面分为如下的几个部分 [l0p8slqyns.jpeg] Scaffold属性 属性 类型 简述 appBar PreferredSizeWidget 界面顶部的一栏控件,相当于 Android...persistentFooterButtons List 在底部显示的一组按钮 drawer Widget 开始部分的(左边)抽屉菜单 endDrawer Widget 结束部分的(右边...)抽屉菜单 drawerScrimColor Color 打开侧滑菜单时遮盖在主要内容区的蒙层颜色 backgroundColor Color 内容的背景颜色。...是一个不规则底部工具栏,它比BottomNavigationBar 灵活,可以放置文字和图标等等控件。

    2.9K30

    导航组件概览 | MAD Skills

    导航组件介绍 导航组件包括了相关 API 和 Android Studio 中的设计工具,其大大简化了您应用中导航流程的创建和编辑。以前没有导航组件的时候,应用中的导航任务是由我们手动编码实现的。...您还需要在用户点击设备返回按钮和 ActionBar 的向上按钮时正确地处理返回和向上操作。有时候不同应用中处理这两个相关而又不完全相同的操作会产生一些不一致的结果。...在导航图中的每个目的地都是 fragment,每个目的地都包括 0 个或更多的操作 (action),操作定义了如何导航到导航图中的其他目的地。...应用展示了 NavigationView (抽屉式导航栏) 覆盖在 activity 内容上方 接下来是 NavigationView,它是一个从左边划入的抽屉式导航栏。...大部分的导航相关的图像更新发生在 NavHostFragment 内部,但是系统中仍然存在其他需要更新且不在容器内的部件,比如我们上面看到的抽屉式导航栏,以及类似 tab bar 的元素 (该组件可以被用来展示当前目的地信息

    1.7K30

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

    看名字我们就知道这个组件仅限 Android 平台能用。Android 中的 DrawerLayout 就是一个抽屉导航组件,所以这个组件的功能当然也是一样的。...我们的这个抽屉导航视图一开始是看不见的,就像抽屉一样,你不拉开抽屉你看不到东西,所以导航视图可以从drawerPosition指定的窗口侧面拖拽出来,并且抽屉的宽度可以使用drawerWidth属性来指定...func 每当导航视图(抽屉)产生交互相互作用的时候调用此回调函数 onDrawerStateChanged func 每当抽屉的状态变化时调用此回调函数。...抽屉可以有3种状态: dle(空闲),表示现在导航条上没有任何正在进行的交互。 dragging(拖拽中),表示用户正在与导航条进行交互。...settling(停靠中),表示用户刚刚结束与导航条的交互,导航条正在结束打开或者关闭的动画。

    2.5K70
    领券