HarmonyOS 列表分页:用五页固定内容看懂状态联动

在移动端页面里,列表分页看起来是一个很小的功能:顶部显示当前页,下面列出几条内容,底部提供“加载下一页”,用户点击后看到下一组数据。真正决定体验的,并不是分页按钮本身,而是页码、列表编号、标题、摘要和按钮状态能不能始终保持一致。

这个页面正好把这些关系压缩在一个很容易观察的界面里。打开后,顶部是蓝色标题栏,标题为“列表分页”;标题栏下面是一张白色信息卡,左侧写着当前页与总页数,右侧是“刷新”按钮;中间是六条白色列表卡片;最下方是一个宽大的操作按钮。页面初始处于第一页,底部按钮显示“加载下一页”。点击它,当前页变成下一页,六条卡片中的编号、标题和副标题也跟着变化。连续点击到第五页后,底部按钮变成灰色,并显示“已加载全部内容”。

这篇文章只围绕这个页面本身展开,重点说明用户能够看到什么、每个按钮会带来什么变化、列表内容是怎样跟随页码变化的,以及为什么到了最后一页以后按钮不再继续推进。页面中的内容是固定数据演示,不连接服务器,也没有真实分页接口、网络请求、数据库查询或后台数据总量计算。把这个边界说清楚,反而更容易理解它作为分页交互样例的价值。

一、先看懂页面,再讨论分页

首次打开页面时,用户会看到一个非常明确的纵向结构。最上方的蓝色区域承担页面标题的作用,白色粗体文字“列表分页”位于标题栏中。它没有额外的筛选、搜索、返回或菜单入口,因此用户进入页面后不用猜测主要任务是什么:浏览列表并切换内容页。

标题栏下面留出浅灰色背景,白色卡片浮在背景之上。卡片左侧的文字是“第 1 / 5 页”,它同时提供两个信息:当前所在页是第一屏,整个演示被分成五页。右侧的“刷新”按钮使用浅蓝色背景和蓝色文字,与标题栏的深蓝色形成层次。这个按钮不是重新请求网络数据,而是把当前页状态恢复到第一页。无论用户已经走到第二页、第三页还是第五页,点击它都回到初始展示。

中部区域是一个纵向列表。列表一次展示六项,每一项都有三个视觉层次:左边是蓝色数字,中间是较醒目的主题标题,标题下面是灰色副标题。数字的存在让用户很容易判断内容是否换页;标题承担主要阅读信息;副标题用来补充这一项属于哪一类内容。六张卡片的间距一致,白色圆角卡片与浅灰背景分离,滚动或浏览时不会混成一整块文字。

最底部的按钮是页面最重要的继续入口。第一页到第四页时,它显示“加载下一页”,使用蓝色背景和白色文字,视觉上告诉用户当前还有内容可以继续看。第五页时,文字变成“已加载全部内容”,按钮背景变为灰色,和前四页的可操作状态区分开。这里没有额外弹窗,也没有错误提示,页面直接用按钮文案和颜色完成状态表达。

二、六条列表为什么能说明分页变化

页面每一页都展示六条内容。第一页的编号从 1 开始,到 6 结束;第二页编号从 7 到 12;第三页从 13 到 18;第四页从 19 到 24;第五页从 25 到 30。这个编号规律非常直观,用户不需要查看隐藏信息,只要比较第一页和第二页,就能确认列表确实换了一组数据。

每一项的主题标题来自四个固定主题的循环组合:HarmonyOS 开发技巧、组件状态管理、应用性能优化、工程化实践。由于主题数量是四个,而每页显示六项,所以相邻条目可能出现相同主题,但后面的编号不同。这个设计不是为了模拟真实新闻数据,而是为了让列表在有限内容下仍然有可辨识的变化。比如第一页的第 1 项和第五页的第 25 项可能属于同一个主题,但它们的编号和副标题位置不同,用户仍然能够确认当前页面已经改变。

副标题来自三种固定描述:原生组件与交互设计、数据加载与状态同步、工程构建与发布。它们按照列表位置循环出现。这样做带来两个效果。第一,六条内容不会变成六行完全相同的文本,页面层次更清楚;第二,翻页后即使主题名称出现重复,编号和副标题组合仍然会产生变化。对观察分页而言,这比只把六个空白卡片换成另一组空白卡片更容易验证。

列表项左侧的数字使用蓝色和较粗字重,并且预留固定宽度。数字不会因为从 9 变成 10 或从 19 变成 20 而把标题挤到不同位置。中间的标题和副标题放在同一个纵向区域,标题与副标题之间保持小间距。卡片四周有统一内边距,文字不会贴着边缘。每一项横向占据内容区域的全部宽度,用户可以把它理解为一组连续的内容条目。

三、第一次点击:从第一页进入第二页

初始状态下,顶部显示“第 1 / 5 页”,列表显示 1 至 6,底部按钮是蓝色的“加载下一页”。点击底部按钮后,页面顶部变成“第 2 / 5 页”,列表编号变成 7 至 12,标题和副标题也按第二页的位置重新组合。按钮仍然显示“加载下一页”,因为第四页之前都还没有到达终点。

这一动作可以拆成三个同时发生的可见变化。第一是页码文字变化,它告诉用户当前上下文已经切换。第二是六条列表内容变化,编号从 1–6 变为 7–12,说明页面展示的是另一批而不是在原列表末尾追加六条。第三是按钮保持可继续操作的样式,因为页面仍有后续页。

这里特别值得注意的是,页面并没有把第一页的六条内容保留在第二页上方。用户点击之后看到的是另一组六条卡片,列表区域保持相同高度和相同布局,只替换内容。对移动端而言,这种“当前页替换”比无限累加更容易控制页面高度,也更容易让用户知道当前正在看哪一批数据。

如果点击速度较快,页面的逻辑仍然只关心当前页是否小于第五页。每次点击会把页码向后推进一页,列表根据新的页码重新呈现。因为没有网络请求和异步等待,所以不会出现“按钮点击后先显示加载中,过一会儿才出现结果”的过程。它展示的是同步、即时的本地状态切换。

四、连续翻页时页面如何保持一致

从第二页继续点击,第三页显示“第 3 / 5 页”,列表编号为 13–18;第四页显示“第 4 / 5 页”,编号为 19–24;第五页显示“第 5 / 5 页”,编号为 25–30。每一次切换的规律都一样,顶部页码、列表编号、主题组合和底部按钮共同变化。

这样的页面适合观察“一个状态影响多个区域”的效果。当前页不是只显示在顶部的一段文字,它还参与每条列表编号的计算,也影响底部按钮显示的文字和颜色。也就是说,用户只点击了一个按钮,但同时看到了三处区域响应:页码区域、列表区域和底部操作区域。页面把这种关联做得很明显,所以即使不看实现细节,也能从界面判断这些区域属于同一个分页状态。

当页面从第三页进入第四页时,底部按钮仍然是蓝色。进入第五页后,底部按钮才发生明显变化。这种变化点明确,用户能知道第五页是最后一页,而不是误以为点击失败。最后一页不再使用蓝色强调“继续”,而是用灰色表达当前已经没有下一批可加载的内容。

第五页按钮虽然仍然占据原来的宽度和高度,但它的文案和颜色已经变成终点状态。这样做比直接隐藏按钮更稳定,因为页面整体布局不会在最后一页突然缩短;用户也能看到“已加载全部内容”这个明确结论。按钮的存在从“继续操作入口”转变为“状态提示区域”。

五、刷新按钮到底刷新了什么

页面顶部的“刷新”按钮容易让人联想到重新拉取数据,但在这个演示中,它的作用很单纯:把当前页设回第一页。它不会改变固定主题数组,不会生成新的列表条目,也不会改变总页数。用户在第五页点击刷新后,顶部回到“第 1 / 5 页”,列表恢复 1–6,底部按钮恢复蓝色的“加载下一页”。

这个操作对于体验很重要。假设用户一路浏览到最后一页,想重新从头查看,只需要点击一次刷新,不必连续点击四次返回,也不必退出页面再重新进入。刷新后的页面与首次打开的状态相同,因此它也可以作为一个明确的“回到起点”操作。

刷新按钮放在页码同一张卡片里,位置非常合理。当前页信息在左侧,重置动作在右侧,用户看到页码后能立即找到恢复入口。它没有使用醒目的深色背景,而是用浅蓝色底和蓝色字,强调程度低于底部的继续按钮,符合“辅助操作”的视觉等级。

刷新并不代表真实数据刷新,这一点不能混淆。页面没有展示网络请求、缓存清理、服务器时间或数据更新时间,也没有根据外部数据修改六条内容。它只是重置一个本地页面位置。对于学习状态驱动界面的读者来说,这种小而明确的重置动作,正好能说明“操作更新状态,界面根据状态重新显示”的关系。

六、列表布局为什么使用卡片式结构

列表区域的背景是浅灰色,每条内容卡片是白色。颜色对比让每一项都有清楚的边界。卡片带有圆角,边缘不会显得生硬;卡片之间有固定间隔,六条内容不会连成一张白色大面板。用户可以快速从一条移动到下一条,也能在翻页后保持同样的视觉阅读节奏。

每条卡片内部使用横向排列。左侧数字区域宽度固定,中间文字区域占据剩余空间。数字与标题之间有明显的距离,使编号不会和标题粘在一起。标题与副标题采用上下排列,标题字号更大、颜色更深,副标题字号较小、颜色较浅。即使页面内容很多,用户也能先扫描数字,再决定是否阅读标题和副标题。

页面内容区域使用纵向布局,顶部信息卡、列表、底部按钮之间有统一的间距。列表本身占据主要剩余空间,底部按钮固定在列表之后。这样处理后,底部继续按钮不会混在最后一条列表卡片中,用户能够分辨“内容区域”和“操作区域”。

顶部蓝色标题栏与下方浅灰背景形成强烈区分。标题栏只承载页面名称,没有把页码和操作按钮塞进去,所以页面结构更干净。页码和刷新被放在白色卡片中,说明它们属于列表浏览控制;六条卡片属于内容;底部按钮属于继续加载动作。三层职责通过空间、颜色和卡片边界表达出来。

七、页码、编号和标题之间的关系

分页页面最容易出现的问题是三个数字不一致:顶部写着第二页,列表却还显示第一批编号,或者底部已经显示全部内容,列表仍然允许继续添加。这个页面的可见规则比较统一:当前页是唯一的分页依据,页码变化后,六条编号都按当前页重新计算,底部按钮根据是否到达第五页切换文案和颜色。

每页的第一条编号可以理解为“当前页乘以六,再减去五”,后面五条依次增加。读者不需要掌握这个数学表达式,只要观察页面即可看到 1–6、7–12、13–18 这样的连续区间。这个规律能够防止翻页时重复显示前一页的数据,也能够让最后一页的范围明确落在 25–30。

标题组合会随着当前页参与循环,因此页码变化不仅影响数字,也会使标题排列产生变化。由于标题只有四种,不能把标题文本本身当作唯一的分页证据,编号才是最稳定的观察点。副标题有三种,同样是辅助信息。实际阅读时,应该把顶部页码、左侧编号和按钮状态放在一起看。

这种设计也说明了列表内容的稳定性和分页状态是两个不同概念。标题数组和副标题数组属于固定内容,当前页属于变化状态。内容不会因为点击而随机生成,变化的是当前页决定了哪一组编号和哪一种排列方式。把固定内容与变化状态分开,页面行为才容易预测。

八、第五页的边界状态

第五页是整个页面最重要的边界。前四页的操作方式完全相同,到了第五页,按钮不再推进页码。点击它不会把页面推进到第六页,因为页面总页数固定为五页。此时按钮文本为“已加载全部内容”,背景颜色是灰色,页面通过两种反馈告诉用户已经到达终点。

这个边界不是通过弹窗提醒,也不是通过空白页面表达,而是在当前列表下面直接给出结论。列表仍然保留最后六项,用户可以继续阅读,不会因为到达终点而丢失内容。底部状态提示紧接着列表出现,阅读路径自然闭合。

如果第五页仍然显示蓝色“加载下一页”,用户很可能会继续点击并期待出现新内容;如果按钮直接消失,用户又可能不确定是不是页面加载失败。灰色按钮和“已加载全部内容”的组合,既保持布局稳定,也阻止用户产生错误期待。

边界状态还体现了操作保护。即使用户尝试点击底部区域,当前页也不会超过第五页。对于真实应用而言,这种边界保护同样重要:页码不能越过总页数,重复点击不能导致无效请求,最后一页应该给出确定反馈。当前页面没有真实请求,但用本地状态演示了这个保护思路。

九、页面是本地分页演示,不是真实数据分页

从页面能够确认的事实只有这些:总页数固定为五页,每页显示六条,列表内容来自页面内的固定文本,点击按钮会改变当前展示页,刷新会回到第一页。页面没有展示服务器地址、请求参数、返回状态、加载失败、网络等待、接口分页字段或真实数据总数。

因此,这个页面不能被描述成已经接入后端的分页列表,也不能说它会从数据库读取数据。所谓“加载下一页”,在页面中只是切换到下一组本地演示内容;“已加载全部内容”也只是第五页对应的界面状态。把这些词理解为真实网络行为,会超出页面实际能力。

同样,页面没有可输入的页码框,没有上一页按钮,没有可直接点击的 1、2、3、4、5 页码按钮,也没有下拉刷新手势。用户只能通过底部按钮向后进入下一页,通过顶部刷新回到第一页。文章讨论分页时,范围应该限定在这些实际存在的入口。

页面也没有把前面页面追加到后面。每次翻页都重新展示六条卡片,当前界面只呈现当前页。它更接近“分页切换”而不是“无限滚动加载”。如果要做真正的无限列表,需要另一套滚动触底、请求状态和追加数据逻辑,这些都不属于当前页面。

十、从用户视角走完一遍操作

第一步,打开页面。用户看到蓝色标题栏、第一页信息、六条编号 1–6 的内容,以及蓝色的“加载下一页”。这一步主要确认初始状态清楚,页面是否在首屏就告诉用户有多少页。

第二步,点击“加载下一页”。顶部变成第二页,编号变为 7–12,按钮保持可继续样式。用户可以对照前后两次页面,确认不是简单地改变了一段标题,而是整组列表都向后移动了。

第三步和第四步,继续点击按钮,分别进入第三页和第四页。此时页面结构没有变化,只变化页码、六条内容和部分标题排列。稳定的结构让用户把注意力放在数据变化上,而不是重新适应布局。

第五步,进入第五页。顶部显示第五页,列表编号为 25–30,底部变成灰色的“已加载全部内容”。这一步验证了终点状态。按钮没有继续增加页码,列表也没有出现第 31 条以后内容。

第六步,点击顶部“刷新”。页面回到第一页,列表重新显示 1–6,底部又恢复蓝色“加载下一页”。这一步验证了重置路径,也说明页面可以重复进行“从第一页到第五页”的演示。

如果在第二页或第三页点击刷新,结果同样是回到第一页。刷新不取决于原来的页码,也不会回到上一页。它是固定的起点恢复动作。

十一、常见误解与实际表现

第一种误解是把“加载下一页”理解为后台请求。页面实际没有等待过程,点击后立即出现下一组本地内容。没有加载转圈,没有网络错误,也没有请求失败提示。文章可以讨论按钮带来的页面更新,但不应该声称完成了接口加载。

第二种误解是认为五页内容来自五次动态生成。页面展示的是固定的标题和副标题组合,变化依据是当前页和列表位置。内容不是随机产生的,也不会随着刷新改变。刷新只是把页面位置恢复到第一页。

第三种误解是把灰色按钮当成禁用后完全不能点击的系统控件。用户层面的结果是点击后不会继续推进,文案和颜色表达“全部加载完成”。无论内部控件是否仍然存在点击回调,文章都应以可见效果为准:第五页不会产生第六页。

第四种误解是认为列表使用了无限滚动。页面有一个明确的底部按钮,用户通过点击推进页面,而不是滑到底部自动触发。列表区域与底部按钮分开,交互入口非常明确。

第五种误解是认为刷新会重新生成数据。页面中的六条内容在同一页上保持稳定,刷新只把当前页恢复为一。它没有时间戳、随机数或新数据提示,因此不能写成“同步最新数据”。

十二、为什么这个小页面适合学习状态驱动界面

页面没有大量状态,也没有复杂业务,但它把一个状态的影响范围表现得很完整。当前页变化时,顶部文字、列表编号、标题组合以及底部按钮都会更新。用户能够从多个区域同时观察到同一次操作的结果,这比只有一处数字变化的例子更有学习价值。

刷新按钮又提供了另一种状态操作:把变化状态恢复到初始值。向后推进和回到起点构成两个方向不同的交互。它们都不直接操作某一张卡片,而是改变整个页面的当前页,然后由页面重新呈现对应内容。

列表项的重复结构也适合说明声明式界面的特点。六条卡片外观一致,但每条的数字、标题和副标题根据位置不同。页面不需要为每一条设计完全不同的布局,统一的卡片结构能够承载不同文本。用户看到的是一致的视觉语言,开发者思考的是数据位置与展示关系。

底部终点状态则说明了页面不应只考虑正常路径。第一页到第二页是正常推进,第五页之后不能继续是边界;刷新是恢复路径;重复点击是常见操作。一个看似简单的列表,如果这些情况没有明确表现,用户就会遇到“按钮看起来能点但没有结果”的困惑。

十三、可见反馈的层次

页码文字是第一层反馈,它回答“我现在在哪一页”。六条列表是第二层反馈,它回答“这一页有什么内容”。编号是第三层反馈,它帮助用户比较前后两页是否真的发生切换。底部按钮是第四层反馈,它回答“还能不能继续”。刷新按钮则提供回到起点的控制。

这些反馈互相配合,而不是重复同一句话。比如从第四页进入第五页,顶部数字告诉用户到了第五页,列表编号告诉用户内容范围是 25–30,底部灰色按钮告诉用户后面没有下一页。三个区域各自承担不同说明,用户不需要依赖弹窗就能理解状态。

颜色也参与反馈。标题栏的深蓝色建立页面主题,列表编号和刷新文字使用蓝色作为强调,底部可继续按钮使用更饱满的蓝色,最后一页使用灰色表示不可继续。颜色没有代替文字,而是与文字共同表达,兼顾快速浏览和明确理解。

按钮高度和宽度同样影响反馈。底部按钮横向铺满内容区域,视觉重量大于顶部的小型刷新按钮,说明继续浏览是主要路径。第五页即使改成灰色,按钮仍保持原尺寸,用户仍然能够在熟悉的位置看到终点提示。

十四、如何检查页面行为是否正确

可以按照实际页面提供的路径进行检查。首先确认初始状态:顶部应显示第一页和五页总数,列表编号应从 1 到 6,底部应显示可继续加载的蓝色按钮。

然后逐次点击底部按钮。第一次后应出现 7–12,第二次后应出现 13–18,第三次后应出现 19–24,第四次后应出现 25–30。每次页面顶部页码都应同步增加一,不能出现页码已经变化但列表仍停留在上一组的情况。

到达第五页后,观察底部按钮。文案应为“已加载全部内容”,背景应变为灰色,页面不应继续出现第六页。这里不需要期待网络请求,也不需要等待后台返回,因为当前页面是本地演示。

在任意中间页点击顶部刷新,确认页面直接回到第一页。刷新后应恢复 1–6 和蓝色继续按钮。到第五页再刷新,也应得到完全相同的第一页状态。

视觉方面要检查标题栏是否完整占据顶部,白色卡片是否与浅灰背景有足够对比,六条列表是否间距一致,数字与标题是否对齐,底部按钮是否没有被列表遮挡。由于卡片内容固定,检查重点是不同页码下布局是否保持稳定,而不是数据是否随机变化。

十五、如果以后接入真实数据,需要改变什么

当前页面没有真实分页接口,所以不能把本地切换直接当成网络分页。若以后接入后端,首先需要增加请求状态,至少区分请求中、成功和失败。点击下一页后,按钮可能暂时不能重复点击,页面也需要在等待期间给出清楚提示。

其次,需要由服务端返回真实总页数或是否还有下一页。当前页面固定为五页,生产数据可能有不同页数;有时服务端只返回“是否还有更多”,不能继续沿用固定终点判断。最后一页按钮文案应该依据真实返回结果,而不是只看当前数字。

再次,需要处理请求失败和空数据。当前页面没有错误状态和空列表状态,失败时也没有重试按钮。真实数据接入后,网络中断、权限问题、参数错误都可能发生,页面需要增加与这些情况相符的显示。但这些属于未来扩展,不能反过来描述成当前页面已经具备的能力。

还要注意翻页过程中的重复点击和乱序返回。当前页面同步切换,不会遇到请求先后顺序;接入网络后,如果用户快速点击多个页码,就需要限制重复请求或保证响应对应正确页。当前页面没有页码输入和页码组,也没有并发请求,因此文章只讨论本地页状态。

十六、运行画面的核对重点

真正运行页面时,应看到蓝色“列表分页”标题栏、显示“第 1 / 5 页”的信息卡、六条编号 1 至 6 的列表项,以及底部蓝色“加载下一页”按钮。点击底部按钮后,页码应变成第二页,列表编号变为 7 至 12;继续操作到第五页后,按钮应变为灰色的“已加载全部内容”。这些可见结果比一张静态图片更能说明分页状态是否正确。

如果实际画面仍然停留在系统桌面,说明当前运行没有进入这个页面,桌面画面就不能作为列表分页页面的配图。只有实际显示列表分页界面的图片,才与这里描述的标题栏、页码、列表项和底部按钮一致。

十七、把列表分页做得更容易理解的几个细节

第一,当前页和总页数要同时出现。只显示“第 3 页”无法判断总共几页;只显示“共 5 页”又无法判断当前进度。“第 3 / 5 页”把当前位置和整体范围放在同一处,信息密度合适。

第二,每一页的条目编号要连续。即使标题重复,编号仍能让用户确认数据是否换过。编号也能帮助测试人员快速记录某一页的内容范围,例如看到 19–24 就能判断当前应是第四页。

第三,继续按钮的文案要随边界变化。前四页说“加载下一页”,第五页说“已加载全部内容”,用户不用猜测按钮是否还能产生新结果。

第四,重置入口要稳定。刷新按钮一直位于页码卡片的右侧,不随着列表内容变化而移动。用户在任何页面都可以用同样的动作回到起点。

第五,布局不因终点状态突然跳动。第五页仍然保留底部按钮区域,只改变文字和颜色。这样用户的视线位置保持一致,页面不会因为隐藏控件造成内容上下移动。

十八、从这个页面能够学到什么

这个列表分页页面最值得关注的地方,不是它有多少条数据,而是它把“状态变化”变成了可见的阅读过程。当前页从 1 变成 2,数字变了;数字范围从 1–6 变成 7–12,列表变了;底部按钮仍可继续,操作状态也同步保持。到第五页,三处反馈一起指向终点。

它还说明了一个演示页面应该怎样诚实表达能力:固定数据就写清楚是固定内容,本地切换就不包装成真实请求,按钮文案展示的是页面结果而不是虚构的后台过程。这样读者能准确理解示例能做什么,也知道哪些部分还没有实现。

对于 ArkUI 初学者而言,页面展示了纵向容器、横向排列、列表项、重复数据展示和点击事件之间的组合方式。无需引入复杂组件,单个状态也能让多个 UI 区域产生联动。对于有经验的开发者而言,它则提供了一个检查交互闭环的最小样本:正常推进、终点保护、回到起点和固定内容都能在同一页内验证。

十九、翻页过程中的阅读节奏

分页不只是把数字换掉,还会改变用户阅读页面的节奏。第一页打开时,用户会先读取标题,再注意到“第 1 / 5 页”,然后从第一条内容开始向下浏览。底部的蓝色按钮在首屏中承担一个明确暗示:当前内容还没有结束。如果用户已经看完六条,按钮正好位于列表下方,下一步动作不需要重新寻找。

进入第二页后,页面的空间关系完全不变,用户的视线可以直接回到第一条新内容。顶部页码提供位置确认,左侧连续编号提供变化确认,标题和副标题提供阅读内容。因为卡片高度、内外间距和颜色都不变,用户不会把注意力浪费在学习新的页面结构上。这种稳定性对于列表类页面尤其重要,页面应该让内容变化成为主角。

从第四页进入第五页时,阅读节奏会在底部自然停下。最后一页仍然有六条卡片,不会用空白区域告诉用户已经没有内容;看完 25–30 后,灰色按钮给出明确结论。用户可以继续停留在第五页阅读,而不用担心误触会跳到一个不存在的第六页。如果想重新开始,顶部刷新按钮始终在原位置,阅读路线又能回到第一页。

二十、列表卡片中的信息优先级

每张卡片最先被看到的是左侧蓝色编号。编号颜色鲜明、字重较高,而且占据固定宽度,适合用来快速确认顺序。编号右边是主题标题,它的字号和字重都高于副标题,承担这一项内容的主要识别作用。副标题颜色更浅、字号更小,属于辅助说明。三层文字没有互相争抢,用户可以根据阅读目的选择只看编号、扫读标题,或者继续阅读副标题。

六条卡片使用相同的信息顺序,因此页面不会出现某一项把说明放在数字前面、另一项又把标题压到最右侧的情况。统一的顺序让翻页后的内容仍然容易比较。即使某个主题在不同页面再次出现,用户也能通过编号、标题和副标题的位置迅速判断它属于当前哪一项。

卡片的白色底色并不是为了装饰,它把内容从浅灰页面背景中托出来。圆角让卡片边缘柔和,卡片之间的空隙让六项内容可以被逐项识别。横向排列中,左侧数字和右侧文字各有稳定区域;纵向排列中,标题与副标题保持紧凑距离。这样的结构在内容长度变化时仍然容易阅读。

二十一、操作按钮的主次关系

页面有两个按钮,但它们的任务不同。顶部“刷新”是恢复位置的辅助操作,尺寸较小,背景是浅蓝色,和页码放在同一张信息卡内。底部“加载下一页”是主要阅读路径,宽度几乎占满内容区,高度也更醒目,使用深蓝色背景。用户进入页面后,首先应该浏览列表,之后才决定继续或重置,这种主次关系通过按钮尺寸和颜色被表达出来。

到了第五页,底部按钮不再使用主要操作的蓝色,而是改成灰色。它仍然保留在原来的位置,避免页面布局变化,但视觉强调降低,说明当前动作已经从“继续推进”转变为“显示完成”。顶部刷新仍然是浅蓝色,因此即使已经到达终点,回到第一页的入口依旧清楚可见。

按钮文字也比单纯的箭头更明确。“加载下一页”直接告诉用户点击后会看到什么,“已加载全部内容”则告诉用户没有后续内容。对不熟悉这个页面的用户而言,这种文字反馈比只使用图标更容易理解,也减少了反复点击确认的需要。

二十二、重复操作和恢复路径

用户可能在同一页连续点击刷新,也可能在第五页继续点击底部区域。前一种操作不会把页面变成异常状态,当前页本来就是第一页时,刷新仍然保持第一页;后一种操作不会出现第六页,终点保护仍然有效。虽然这些动作看似没有产生新的内容,但它们体现了界面在重复操作下保持稳定的能力。

用户还可能在第二页停留片刻后刷新,而不是一路走到第五页。页面不要求必须完成完整的翻页流程,刷新可以从任意中间页返回起点。重新从第一页开始后,内容顺序和按钮状态与首次打开一致,不会保留上一次浏览位置,也不会出现编号跳跃。

这种恢复路径使页面容易重复演示。观察者可以先从第一页点到第五页,再刷新回第一页,再从某个中间页直接重置。每一条路径的可见结果都是确定的,页面没有随机数据、不可预测的延迟和依赖外部环境的状态,适合反复查看列表变化。

二十三、页面高度与内容可读性

列表占据页面中部的主要空间,六条卡片按统一间隔排列。卡片内容较短,标题和副标题都能在一项内完成展示,不需要用户打开详情页。底部按钮位于列表后面,既不会压住最后一条内容,也不会在页面中央打断阅读。整体布局从上到下形成标题、控制、内容、继续操作四个层次。

当页码变化时,列表条目的编号长度可能从个位数变成两位数,但左侧区域预留了固定宽度,标题位置不会因为数字长度改变而明显跳动。内容标题也都在相近的长度范围内,卡片视觉高度保持稳定。第五页与第一页的页面结构相同,只是文字和按钮状态不同,因此用户能够把注意力放在状态而不是布局变化上。

如果屏幕高度有限,列表区域仍然是页面中可以滚动的内容区,底部按钮作为后续操作位于列表之后。这里的重点不是让所有卡片永远同时出现在屏幕内,而是确保用户知道列表区域和继续操作之间的关系。实际查看时,应先观察当前页面顶部和前几条内容,再向下查看其余条目与按钮。

二十四、总结这个页面的边界

这个页面有五个固定页状态,有六条固定列表项展示,有一个向后推进按钮和一个返回第一页的刷新按钮。页码不会小于一,也不会大于五;列表编号会覆盖 1–30 的连续范围;第五页通过灰色按钮和完成文字表达终点;刷新从任何页都回到第一组内容。
在这里插入图片描述

在这里插入图片描述

它没有上一页入口,没有页码输入,没有直接选择某一页的按钮,没有筛选条件,也没有网络请求失败状态。它没有根据服务器返回的数据改变总页数,也没有把多页内容累积到一个无限列表里。用户看到的一切都来自这个页面预先准备好的文本和本地状态变化。

明确这些边界并不会降低页面的学习价值。相反,范围越清楚,越能准确讨论列表、重复条目、页码状态、终点保护和重置反馈。读者可以把它当作一个可重复观察的分页交互样例,理解页面如何通过一个变化状态同时驱动多处可见结果,然后再决定是否需要为真实业务增加数据请求、错误处理和复杂分页策略。

二十五、结语

一个好的分页页面不需要堆叠很多按钮。只要当前位置清晰、每页内容有可辨识变化、下一页入口与终点状态明确、刷新路径稳定,用户就能顺利完成浏览。这个页面用五页固定内容、每页六条卡片、一个继续按钮和一个刷新按钮,构成了完整的本地分页演示。

从第一页到第五页,用户可以看到 1–30 的连续编号;从第五页点击刷新,又能回到 1–6 的起点。页码文字、列表卡片和按钮颜色共同组成反馈闭环。页面没有真实分页接口、网络请求或后台数据,但正因为范围小且行为确定,特别适合用来理解列表分页中的状态关系与边界处理。

如果把它当作一个可运行的界面练习,重点是观察每次点击后哪些可见区域发生变化;如果把它当作设计参考,重点是学习如何用少量控件表达当前位置、继续路径和结束状态。无论哪种用途,都应该以页面真实表现为准,不把本地演示扩写成不存在的系统能力。

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐