07977de384405b4154ac71048b5d9f5c
重学安卓:滑动冲突 的快乐你不懂!

温馨提示:如果这是第一次接触《重学安卓》,可借助 这份在 GitBook 上维护的 “导读” 来快速了解《重学安卓》专栏、获取它的目录、试读内容,以及了解它的最新动态 和 发展状况。

截至目前,专栏已对 体系化文章 做了 730 余次修订,数十位群友告诉我 受专栏的启发 他们也开启了写作之路。群里不定期会有小伙伴讨论适配问题、分享原创的开源库 和 提供内推机会,订阅后可随时进群交流。

前言

很高兴见到你!

上一期 我们介绍了 如何正确地思考、以及 视图学习的两大方向。

我相信 有的读者 在加入该专栏之前,就已经掌握了 正确的思考方式;另有些读者,经过 3 个月的见证,也多多少少领悟了 深度思考的精髓。😉

所以对于我的老读者,我是十分有信心 通过简练的专业表述 来 解释和概括 一个技术存在的缘由、它的作用范围,以及与其他技术间的关系。

然而 每一天 都可能有 新的读者加入,所以出于负责任的考虑,每一篇我都克制 自嗨式 的专业表述,力求用接地气的话语 来 输出深度思考的结果,让还没有彻底掌握 深度思考 的读者,也能享受 豁然开朗 的阅读体验。

由于近期 接二连三地遭遇 巨婴 的 乱窜,我便借着本期的文章,表明我对类似事情的 看法和态度。

文章目录一览

  • 前言
  • 授人以鱼,不如授人以渔
  • 作为 年复一年 的滑动冲突
  • 为什么存在 滑动 的设计?
  • 为什么 首页和详情 要如此设计?
  • 所以 为什么存在 滑动冲突?
  • 那么 如何解决 这些问题?
  • 综上

授人以鱼,不如授人以渔

我从不为 未知的事 感到焦虑,并且觉得,一件事就算我不知道,也没什么大不了的,因为我知道 一件事如果我想知道,我总有办法知道。

但很多人不是。

无论这些人是在校的、是初入职场的、还是摸鱼多年的,他们尚未确立正确的世界观,乃至于他们对知识 怀有一种焦虑,习惯 以 防御性的姿态,去消极地看待知识。一个典型的做法就是,急功近利地、企图 被动地 强迫自己 吞吃所有

这不是在学习,这里面没有 独立思考,这是在 自欺欺人、自我安慰,是在逃避、在假装努力

👆👆👆 划重点

而像 前言 段末 提到的 巨婴,更是对 任何事情 都抱着 一蹴而就 的心态,和寄予 不切实际 的期望 ——

一付费订阅,就要走上人生巅峰;

一阅读文章,就要能扭转乾坤;

一不对胃口,就要一顿开喷 …

此外,还存在 极少数 不懂装懂、带节奏 的“高手”,对 事实 毫无敬畏之心。

以这些“高手”先入为主的、浅薄、幼稚的 观点来看,好像技术都是 高大上的、神秘莫测、不可掌握 的东西,并且好像只有 做到能让 “技术来认识我”,而不是 “我去认识技术” 的,才算 “好” 技术。

正是因为这样 自负的心态,加上 自我愚弄不假思索,使得这些“高手”是所有人当中 进步最慢的。

与此同时

2019 年,“知识”网红 都在唱衰安卓,认为热度已过、流量已死。事实果真是这样的吗?

—— 不过是因为这些网红 不认真做事、不认真赚钱,只顾投机取巧 罢了。

我之所以 敢于坚持 自己的慢节奏,是因为我知道,这个世界从不缺 东拼西凑、人云亦云 的地摊文。

一个现象 如果我不能从 根源的根源 想明白、不能让我的读者 无痛地阅读 和 豁然开朗,我宁可先酝酿一段时日。

更何况,我的读者 多是已经具备了 深度思考能力,而我的工作 只不过是 为目标读者大幅地节省 思考和试错的时间

所以就算 我的文章 姗姗来迟,我也有信心认为,我的读者有能力 借着这个空档 独立思考、独立解决自己遇到的问题。

除此之外,我不承担 任何其他的职责:

我不是明星、不是热点,我不负责 每日发布动态 方便人们打发无聊、排遣寂寞。

相反,只要读者 在阅读的过程中 遇到问题,我一定 知无不答

作为 年复一年 的滑动冲突

视图的标准化 API 这一章,我们主要会介绍 视图的 坐标系统、属性参数事件分发、滑动冲突视图排版、视图绘制 等等,

但以我多年的经验来看,滑动冲突 是人们眼里 最 “高大上”、最 “神秘莫测” 的 痛点所在

可能大家的 浏览器收藏夹 里,都添加了不下 10 篇关于 滑动冲突 的解读,可这么多年过去了,还是纹丝未动,

这是怎么回事呢?

因为 人们不过是听说,面试必考,安卓开发进阶 一定要会处理 滑动冲突,

除此之外,他们 并不知道、也没有去想过:

为什么会有滑动冲突、

滑动冲突 占整个视图学习的份额 到底是多少、

掌握了滑动冲突 能在多大范围内 发挥作用、

实际的问题 会不会无边无际、让所学的 变得渺小和失效?……

正是因为 对这些 必须首先想明白的状况 不清不楚,使得对 滑动冲突 的学习 迟迟未能开始

再加上,视图的 深度思考知识,至少有一半以上 是 产品 交互设计 领域 的知识,所以,除非 事先具备了 深度思考的能力,并且 出于巧合 顿悟了 交互设计 的精髓,否则这个大门 可能永远找不到钥匙来打开。

网上那么多文章,通篇贴代码,你看不懂,或者花了很大代价 将代码流程捋顺,事后却没有留下任何印象,这不怪你,毕竟 写这些文章的人 本身也是 完全没有经过思考,并没有好到哪里去。

所以下面,就请 倒掉杯子里的水,带着思考为什么的心,和我一起 无痛地理解 滑动冲突的状况吧!

为什么存在 滑动 的设计?

因为 人们有 浏览信息 的需求

并且,移动设备 屏幕空间较小,需要使内容可滑动,来实现更大的信息传播量。

关于第一点,很好理解吧?回想一下人们使用移动设备的动机 —— 是的,多是 漫无目的地浏览 以打发时间,或是 如饥似渴地阅读 以增长见识

关于第二点,你或许可以反驳,因为就像书籍一样,软件是可以做成翻页的,即,点击按钮,自动翻到下一页,同样能够确保更大的信息量。

那为什么要存在 滑动 操作呢?

因为 —— 还记得上一篇末尾 我分享的 屡试不爽的 用户体验目标 吗 —— 因为滑动 更符合用户直觉,滑动 能够维持操作的连贯性、不打断用户的意图、让用户感觉爽

👆👆👆 划重点

如果这么说 并没有体会的话,那还是上一篇提到的:要结合用户使用场景、揣摩用户的 意图 和 心态,如此才能明白 什么对用户来说是最爽的。(下面会详细交待,请放心地阅读下去)

此外,正因为用户 多数时间是 漫无目的地浏览 以打发时间,所以 与滑动最紧密相关的,不外乎就是以下两个场景:首页和详情

👆👆👆 划重点

于是

为什么 首页和详情 要如此设计?

还是回到 刚才提到的 屡试不爽的 用户体验目标:维持连贯性

首先 我们来看看 首页的设计

你知道为什么像 AppStore 这种,首页要设计成 列表嵌套 Banner 吗?

这张是动图,给你们看效果 静图 静图
top Created with Sketch.