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

Material Design —Tabs

由于滑动手势用于在Tabs之间导航,请勿将Tabs与同样支持滑动手势的内容配对。 类型 固定 滚动 Tab标签 标签标签可能包含icons和文字。...颜色 将app的强调色或对比色用于文本字段和文本字段光标。 ---- 用法 Tab提供了显示分组内容的功能可见性。 Tab的标签简洁地描述了tab的相关分组的内容。 移动端 ?...这些使用案例涉及查看内容,而不是在内容组之间进行导航。 有关使用制表符导航顶层视图的更多详细信息,请参阅导航 - 模式中的“制表符”。...请勿使用包含支持滑动手势的内容的选项卡,因为滑动手势用于在选项卡之间进行导航。 例如,避免在内容可平移的地图中使用选项卡,或者避免在滑动内容的情况下使用可以取消项目的列表。...固定tabs具有相同的宽度,计算方式为视图宽度除以标签数量,或基于最宽的tab标签。 要在固定选项卡之间导航,可点击tab或向左或向右滑动内容区域。 ?

3.2K100

5个Android 手势和动画方面深度面试题

2、 事件处理: 通过重写onTouchEvent方法来处理触摸事件,如检测单击、长按、滑动等。 3、 手势识别: 使用GestureDetector类来识别简单的手势,如轻触、滑动、长按等。...2、 实现自定义手势逻辑: 通过分析MotionEvent中的数据来实现自定义手势的逻辑。...适用于创建视图的淡入淡出、缩放、平移等效果。...面试题目4:描述如何使用Android的属性动画实现一个视图的路径动画。 解答: 使用属性动画实现视图的路径动画需要以下步骤: 1、 定义路径: 使用Path类定义动画路径。...解答: 实现流畅的滚动列表需要考虑以下几个方面: 1、 使用ViewHolder模式: 在RecyclerView的适配器中使用ViewHolder模式来缓存视图,减少findViewById的调用。

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

    阅读器多种翻页的设计与实现

    正文 常见的阅读器翻页模式包括:平移、仿真、滑页和上下: 平移:左右滑动; ? 仿真:左右滑动;(纸质书翻页效果) ?...1、平移 UIKit提供UIPageViewController可以很方便实现平移的页面切换效果,使用流程: 1、创建UIPageViewController; self.pageVC = [...分解UI层的实现,整个动画可以用以下流程来表示: 1、页面初始化,直接显示页面,监听用户pan手势; 2、用户pan手势开始,根据方向确定左滑还是右滑,获取新的VC; 3、处理用户左右滑动,视图跟随用户滑动...效果分解: 1、当用户滑动的过程,视图要跟随手指的移动; 2、当用户往上滑然后松开时,视图要带有加速度的往上滑动;(附加特性:在滑动过程中用户可以通过重复这个行为加速滑动) 3、在视图滑动的过程中...同理,我们可以处理向上滑动的情况。至此,我们可以不依赖UITableView完成无限视图的滚动,同时避免各类touch事件处理和加速度计算。 ?

    4.3K10

    UI设计中的基本动效,值得收藏一波

    指向型动效的分类 1.滑动 信息列表会跟随着用户的交互手势而动,然后卡片到相应的位置上,保持整齐感,它属于指向型动画,物体的滑动取决于用户是用那种手势滑动的。...10.滚动 根据用户的手势进行滚动操作,非常使用与列表信息的查看。这个交互方式是我们用的最频繁的,仙子我们也可以加入一些动效使这个交互更加的有趣和丰富。 ?...11.平移 当一张图片在我们有限的屏幕里没有办法看完的时候,会使用这样的效果。除了放大效果,这样的平移还可以加上动效配合一些功能使用。 ?...10.滚动 适合场景:当用户垂直或者水平移动页面时。例如列表,图片,很多场景下都可以使用,也因此过于平凡,可以加一些动效让页面活起来。 11.平移 适合场景:移动大于界面的的页面。...例如地图,可以配合其他功能滚动产生平移效果。 12.保存指示器 适合场景:当用户添加书签、下载、保存,加入等行为的时候使用。

    2.6K10

    OpenHarmony 视图加载——ImageViewZoom

    效果展示下载安装ohpm install @ohos/imageviewzoom 使用说明ets 代码依赖import {ImageViewTouchDate, ImageViewTouch, DisplayType...DisplayType.FIT_TO_SCREEN:图像将始终使用此视图的边界呈现。 DisplayType.FIT_IF_BIGGER:仅当大于此视图的边界时才会缩放图像。...public setScaleEnabled(value: boolean): void返回是否能够双击状态值public getDoubleTapEnabled(): boolean判断图片能否根据手势滚动...OnImageViewTouchDoubleTapListener): void设置单击监听事件public setSingleTapListener(listener: OnImageViewTouchSingleTapListener): void设置滑动手势与拖拽手势的方向...: boolean)gestureConversion接口是用于处理拖拽手势PanGesture和滑动手势SwipeGesture的手势竞争问题,通过动态的设置两个手势的触发方向,解决手势竞争。

    36220

    Flutter 基础系列之手势思维导图(5)

    今天我们来了解一下手势这个概念, 先来了解一下手势的优点: 更干净的界面 便于使用 更好地完成任务 增加用户互动 轻松的用户界面 手势类型 现在让我们看看 Flutter 平台提供的手势类型以及可以使用哪些小部件来执行这些手势...我们还将研究一些用例,来判断如何在理想情况下应该使用手势。...gesture-types-uxplanet 手势类型包括: 导航手势 动作手势 变换手势 导航手势 快速轻松地在屏幕之间移动的手势,这并不一定意味着您需要一个按钮来在屏幕之间切换。...它可以是文本、图标甚至图像中的任何内容。 导航手势包括: 轻敲 滚动和平移 拖 滑动 捏 动作手势 顾名思义,一个突出的按钮,例如浮动操作按钮,可以通过单击、长按或滑动在当前屏幕上执行快速操作。...以 Gmail 为例,用户可以在其中滑动以存档电子邮件或点击扩展的 FAB 按钮以撰写电子邮件。 动作手势包括: 轻敲 长按 滑动 变换手势 使用两个或多个手指来变换大小、位置和旋转。

    1.9K20

    Material Design —卡片(Cards)

    内容层次 使用卡内的层次结构来引导用户注意最重要的信息。 例如,将主要内容放置在卡的顶部,或使用排版来强调最重要的内容。 图像可以强化卡片中的其他内容。...支持的手势 卡片手势应始终在卡片集合中实施。 支持的手势包括: 滑动手势(swipe gesture)可以在每张卡片上使用。限制视图内的轻扫手势,使其不会彼此重叠。...例如,可滑动的卡片不应该包含可滑动的图像,以便在滑动时只发生一次动作。 如果用户对集合内的卡进行分类很重要,则可以使用拾取并移动手势(pick-up-and-move gesture)。...从左到右,从上到下 滚动 卡片集合只能垂直滚动。 超过最大卡片高度的卡片内容会被省略,内部不会滚动,但可以扩展卡片。 一旦展开,卡片可能会超过视图的最大高度。...---- 内容块 卡可以使用内容块构建,其中包括: ·可选标题 ·主要标题 ·富媒体 ·支持文本 ·操作 这些内容块可以组织起来以促进不同类型的内容。 例如,可以通过增加排版时的尺寸来强调数字。 ?

    6.1K100

    vuejs中使用axios时如何实现滑动滚动条来动态加载列表数据

    前言 在vuejs中,我们经常使用axios来请求数据,但是有时候,我们请求的数据量很大,那么我们如何实现滑动滚动条来加载数据呢?...生命周期钩子函数 然后,我们需要在onMounted函数中,进行监听 而在onUnmounted函数中,我们需要取消监听,解绑 编写事件处理函数handleScroll, 获取变量scrollTop是滚动条滚动时...,距离顶部的距离,获取变量scrollHeight是滚动条的总高度,获取变量clientHeight是滚动条可视区域的高度 当滚动条到达底部,并且距离底部小于10px时,加载数据,也就是请求axios数据...,页码++,重新加载数据函数 为了防止用户频繁触发下拉滑动滚动条,往往需要添加一个函数防抖,在指定的时间内,只执行最后一次事件处理函数,避免频繁请求数据,给服务器造成压力 代码实现 ...") } 总结 其实这个功能很简单,但是写起来还是有点麻烦,因为涉及到异步请求,所以需要判断数据是否加载完毕 还要判断是否最后一页,还要判断是否还有数据,还要判断是否需要提示用户没有更多数据了,所以代码量还是挺多的

    1.8K50

    jimojianghu

    js 处理 使用js代码来禁止触摸屏的手指缩放,和处理触控板类似的,这里主要是监听几个手势事件,touchstart, touchend, touchmove等。...pan-x 启用单指水平平移手势。可以与 pan-y 、pan-up、pan-down 和/或 pinch-zoom 组合使用。 pan-y 启用单指垂直平移手势。...浏览器只允许进行滚动和持续缩放操作,任何其它被auto值支持的行为不被支持。 启用平移和缩小缩放手势,但禁用其他非标准手势,例如双击以进行缩放。...passived 实际上就是告诉浏览器,某个事件监听是否会使用 preventDefault 来阻止默认行为,便于浏览器优化性能。特别是浏览器优化页面滚动时的性能,可以让页面滚动更顺滑。...方法一:使用 touch-action 样式来禁止垂直平移的默认行为 touch-action: pan-y; 方法二:监听 touch事件 中,明确设置 passive 为 false,声明不是被动的

    4.7K00

    Ios常用第三方框架(二)

    HorizontalScrollCell - HorizontalScrollCell是一款使用方便的水平方向可滚动的单元格,适用于UICollectionView中实现水片方向滚动视图。 。...它使用基于ViewController的container特性(而不是scrollview)来管理各个子页面,以支持无限分页,源码推荐说明。...LxTabBarController - 改变了原生tabbar切换tab时的生硬效果,并加入滑动切换手势(有和界面上的其它手势发生冲突的风险,可根据具体项目予以关闭),swift版本。...横向展示文本内容的自定义cell - 可以横向展示文本内容的自定义cell,根据文本无限滚动。...ZWSlideViewController - ZWSlideViewController多页滑动视图控制器(类似新闻类门户APP),可以用最简单的继承方法使用,也可以不用继承,只用菜单或主视图页面,可实现丰富的定制

    11.8K60

    【IOS开发基础系列】UIScrollView专题

    假如 canCancelContentTouches属性是NO,则不调用这个方法来影响如何处理滚动手势。             ...一个滚动视图也可以控制一个视图的缩放和平铺。当用户做捏合手势时,滚动视图调整偏移量和视图的比例。当手势结束的时候,管理视图内容显示的对象,就应该恰当的升级子视图的显示。...这些都是官方API的解释,重点是理解UIScrollView怎么来控制手势的。...如果判断滚到离开了可视范围,然后就是要改变重用视图数组中第一个视图的位置了。这里用了firstViewIndex来记录scrollView中第一个可见视图的位置, 循环使用这6个视图达到重用的目的。...假如 canCancelContentTouches属性是NO,则不调用这个方法来影响如何处理滚动手势。

    2.9K30

    在Swift中创建可缩放的图像视图

    也许他们想放大、平移、掌握这些图像? 在本教程中,我们将建立一个可缩放、可平移的图像视图来实现这一功能。 计划 他们说,一张图片胜过千言万语--但它不一定要花上一千行代码!...基本上,我们将在UIScrollView中嵌套一个包含图片的UIImageView,它将处理所有我们扔给它的缩放、平移(和点击!)手势。...设置滚动视图 我们需要实际设置我们的滚动视图,使其可缩放和可平移。这包括设置最小和最大的缩放级别,以及指定用户放大时使用的UIView(在我们的例子中,它将是图像视图)。...试试平移和缩放(如果你使用的是模拟器,按住 "option "键)--你会对你的图像有一个全新的视角 以编程方式初始化视图 在使用界面生成器时,这很好--但如果你想以编程方式初始化视图呢?...medium.com/media/825ab… 双击手势(可选 可缩放视图的一个常见功能是双击放大和缩小的能力。这对我们的类来说是一个相对简单的补充,所以接下来让我们来添加这个功能。

    9.9K20

    【愚公系列】2023年12月 HarmonyOS教学课程 039-ArkUI事件(单一手势)

    长按手势可以提供更多的交互方式和功能,使用户能够更方便地操作应用程序,提升用户体验。在移动应用开发中,可以使用相应的手势识别库或者框架来实现长按手势的监听和处理。...通过拖动手势,用户可以在屏幕上拖动某个对象,例如移动一个图像、滚动一个列表或调整一个视图的位置。 拖动手势通常包括以下几个基本元素: 起始点(起始位置):用户触摸屏幕的初始位置。...滚动视图内容:用户可以在滚动视图中使用拖动手势来滚动内容,以浏览长列表或视图。 双指拖动:有些应用程序支持双指拖动手势,通过同时滑动两个手指来实现某些特殊操作,例如旋转或缩放图像。...捏合手势在现代移动设备中广泛应用,例如在智能手机和平板电脑上浏览照片、地图、网页等时经常使用捏合手势来实现缩放功能。...滑动手势通常使用在移动设备或触摸屏设备上,通过手指的滑动来完成操作,比如在手机上可以通过向左滑动删除一条消息,在图片浏览应用中可以通过向左滑动切换到下一张图片等。

    49110

    【总结】1823- 移动端滚动穿透与滚动溢出解决方案

    滚动穿透 问题描述 在移动端 WEB 开发的时候(小程序也雷同),如上录屏所示,如果页面超过一屏高度出现滚动条时,在 fixed 定位的弹窗遮罩层上进行滑动,它下面的内容也会跟着一起滚动,看起来好像事件穿透到下面的...(滚动)和缩放手势由浏览器专门处理,但是可以通过 CSS 特性 touch-action 来改变触摸手势的行为。...值 描述 auto 启用浏览器处理所有平移和缩放手势。 none 禁用浏览器处理所有平移和缩放手势。 manipulation 启用平移和缩放手势,但禁用其他非标准手势,例如双击缩放。...pinch-zoom 启用页面的多指平移和缩放。 于是在 popup 元素上设置该属性,禁用元素(及其不可滚动的后代)上的所有手势就可以解决该问题了。...Step 1、监听弹窗最外层元素(popup)的 touchmove 事件并阻止默认行为来禁用所有滚动(包括弹窗内部的滚动元素)。

    1.4K11

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

    如果您的视图放置在一个可滚动操作的容器 (如 RecyclerView) 中,那么请这么理解这个问题: 该视图是否完全或大部分位于手势交互区域中?...如果用户可以将视图滚动到手势交互区域之外,则应该视为没有交互冲突。 您也许已经注意到,在流程图中多图显示控件 (ViewPager) 在此处回答 "否"。...即使考虑加上了内外边距的情况,用户仍然可以正常通过滑动操作来翻看里面的图片。 问题 6: 该视图/控件是否和强制系统手势交互区域重叠? 最后一个问题询问该控件是否位于系统强制手势导航交互区域内。...出现这种冲突时,我们就可以使用上面提到的手势区域排除 API 来解决。 手势区域排除 API 通常会在两个地方被调用: 当视图被布局时 (onLayout),或是当视图被绘制时 (onDraw)。...我们认为,开发者需要尽量确保用户使用一致的操作来与系统进行交互,如从边缘向内滑动进行返回。注意是在整个设备上,而不仅仅是在一个应用中保持一致性。

    6.4K30

    【Android 内存优化】自定义组件长图组件 ( 长图滚动区域解码 | 手势识别 GestureDetector | 滑动计算类 Scroller | 代码示例 )

    文章目录 一、GestureDetector 创建与设置 二、GestureDetector 触摸事件传递 三、触摸滑动操作 四、惯性滑动操作 五、长图滑动组件代码示例 六、运行效果 七、源码及资源下载..., 此时手指没有离开屏蔽 * * 随着滚动 , 改变图片的解码区域 ; * * @param e1 滑动的起始按下事件 DOWN 事件 * @param...代码示例 /** * 手指滑动事件, 此时手指没有离开屏蔽 * * 随着滚动 , 改变图片的解码区域 ; * * @param e1 滑动的起始按下事件..., 此时手指没有离开屏蔽 * * 随着滚动 , 改变图片的解码区域 ; * * @param e1 滑动的起始按下事件 DOWN 事件 * @param..., 这是上述示自定义组件代码 ;

    2.3K22

    最新iOS设计规范六|10大交互规范(User Interaction)

    在极少数沉浸式应用程序中(如游戏)可能需要自定义屏幕边缘手势,这些手势优先于系统手势,即第一次滑动调用特定于应用程序的手势,第二次滑动调用系统手势。...但是用户也可以通过从屏幕侧面滑动来返回上一页。在iPad上,用户还可以通过按Home键或使用四指捏手势退出主屏幕。 使用多指手势来增强某些APP的体验。...点击(Tap):激活按钮或者选择某个对象 拖动(Drag):把一个元素从一边移到另一边,或者在屏幕内拖动某个元素 滑动(Flick):快速滑动或平移 横扫(Swipe):当用一根手指横扫时,可以用来返回到上一个屏幕...切勿使用双击手势来执行修改内容的动作。 支持涂鸦(Scribble) 始终使输入文本轻松流畅。 使涂鸦可以在人们可能想要输入文本的任何地方使用。 避免在写作时分散人们的注意力。...尽可能使用标准的文本视图和文本字段。 为了提高效率,请考虑支持多项目拖放。 确定在应用程序中拖放内容是应该移动还是复制。 允许用户撤消拖放操作。 考虑启用弹性加载。

    6.1K30

    2014-11-8Android学习------Android抽屉效果的实现案例--------动画Animation学习篇

    (false);//手势识别不接受长按消息状态处理 } 分析写这个里面的有些代码: TypedArray a = context.obtainStyledAttributes(attrs,...(0, delta); } else { canvas.translate(delta, 0); } 如果抽屉方向是垂直的话:画布水平移动0个像素,即水平方向不动;画布垂直方向移动视图的高度...,即垂直方向跟界面同高 如果抽屉方向是水平的话:画布水平移动视图的宽度个像素,即水平方向跟界面同宽;垂直方向移动0个像素,即垂直方向不动 说到这里,就非常的清楚了抽屉的位置了。...,设置手势滑动的范围 setInitialPosition = false;//然后将方向设置为false // for offsetLocation we have to invert...,以便下次使用 我们拉开了“环扣”是需要有业务处理的,就是打开抽屉,这个交给下面的代码来处理: if (!

    1.9K20
    领券