下载 App

横向标签栏的滚动实现

05/1640 浏览开发交流 疑似 AI 合成内容
ScrollView { scrollX=true, scrollY=false, showScrollbar=false }
  │
  └─ Panel { flexDirection="row", gap=8, 不设 width }
        │
        ├─ Item  ← height="100%", aspectRatio=1, flexShrink=0
        ├─ Item  ← 同上
        ├─ Item  ← 总宽度超出 ScrollView → 触发横向滚动
        ├─ Item
        ├─ Item
        └─ Item
让内容溢出
福利活动页有六个标签:签到、每日特惠、积天好礼、基金商城、深渊金库、尊享。
六个正方形图标排成一行,总宽度远超手机屏幕宽度。
常规做法是缩小图标挤进一行,或者拆成两行。
前者看不清,后者浪费纵向空间。
横向滚动是第三种选择——图标保持正常大小,超出的部分允许滑动查看。
要让横向滚动生效,首先得让内容真的溢出容器。
这靠三层结构配合。
最外层是一个 UI.ScrollView,三个属性:scrollX = true 开启横向滚动,scrollY = false 关闭纵向滚动,showScrollbar = false 隐藏滚动条。
ScrollView 占满页面宽度,高度设为父容器的 12% 并附带 minHeight = 70 兜底。
flexShrink = 0 确保它不会被同级的内容区压缩——标签栏是导航控件,高度必须固定。
ScrollView 里面套一个 Panel 做行容器,flexDirection = "row" 横向排列子元素,gap = 8 控制间距,两端各留 10 像素的 padding。
关键是这个 Panel 没有设置 width。在 Flexbox 布局中,不设宽度意味着内容有多宽它就有多宽。
六个正方形标签加上间距和内边距,总宽度超出 ScrollView 的可视区域,行容器自然溢出,ScrollView 检测到子内容比自身宽,横向滚动就生效了。
如果给行容器设了 width = "100%",Flexbox 会试图把子元素压缩到容器宽度以内,滚动就不会触发。不设宽度、让子元素的固有尺寸撑开容器,这是横向滚动布局的标准写法。
子元素不可压缩
每个标签是一个 Panel,核心属性三个:height = "100%",aspectRatio = 1,flexShrink = 0。
height = "100%" 撑满行容器高度。
aspectRatio = 1 强制宽高比 1:1——高度确定了,宽度自动等于高度,得到一个正方形。
flexShrink = 0 禁止 Flexbox 压缩这个元素。
flexShrink = 0 是整个横向滚动能生效的关键。
Flexbox 的默认行为是当子元素总宽度超出容器时,按 flexShrink 比例压缩各个子元素以适配容器宽度。
如果标签的 flexShrink 不为零,六个标签会被压扁到刚好塞进一屏,滚动永远不会触发。
显式声明 flexShrink = 0 是一种防御式写法——确保标签在任何情况下都保持正方形,不会被 Flexbox 吞掉宽度。
小结
整个横向滚动只用了三层嵌套。
ScrollView 开 scrollX 负责滚动能力;行容器不设宽度,让子元素自然溢出;子元素用 aspectRatio 锁定尺寸、用 flexShrink = 0 拒绝压缩。
三者缺一不可——ScrollView 不开 scrollX 则溢出内容被裁切;行容器设了宽度则子元素被压进一屏;子元素允许压缩则总宽度不会超出容器。
同样的三层结构可以用在任何需要横向溢出滚动的场景——卡牌列表、装备栏、技能槽、关卡选择。
核心就两点:外层容器开启横向滚动,内层元素禁止压缩让总宽度超出容器。
别再烧积分了!从每次 2000 到每次 50 的血泪经验截图
别再烧积分了!从每次 2000 到每次 50 的血泪经验
适用场景:所有在用 TapTap Code 开发游戏的小白 难度:★☆☆☆☆ 背景最近群里总有人"炫耀"一次操作花了几千积分,说实话这不是值得高兴的事——这是在告诉所有人你的开发方式有根本性问题。我也走过这条弯路,所以来说说怎么改。 积分消耗的本质是什么积分 = AI 处理的 token 数量 = 你发给 AI 的内容 + AI 回给你的内容所以烧积分的本质只有两种: 你让 AI 做了大量无效/重
精华
68 赞
21 回复
01:27
《大二暑假,我用AI做了一款属于自己的游戏》截图
《大二暑假,我用AI做了一款属于自己的游戏》
本人自制游戏现已加入taptap封闭测试(仅适配安卓机型)欢迎大家前来尝试(八月十号可以正式开始游玩) 如果有建议或者bug反馈可以加入qq群928501443 #发现好游戏 #游戏日常 #浅评一下 #今天游戏圈发生了啥
3 赞
03:06
为了不被斩杀,我只能做到这些了截图
为了不被斩杀,我只能做到这些了
之前一直申请不到计划3,之前说太花哨,后面说体量完成度不足,在我一番小作文下,编辑终于给了我解答,什么原生质感,玩家开局体验啥的。 本来计划2也够用,准备以后再优化了,结果计划2赠送的积分要砍半了,学生党实在消费不起,于是只能再冲一波计划3了 从周六中午到现在一天半时间,优化了一遍角色卡,战斗卡,还有抽卡界面,优化了新手教程,该说不说确实比之前要舒服些。 前半部分为新版,后半部分为旧版。 明天再次
32 赞
6 回复
如何提升你游戏中的UI美术水平截图
如何提升你游戏中的UI美术水平
一、请为你的游戏挑选一款合适的字体 很多开发者没有注意到其实UI界面中最重要的元素是字体,一款合适的字体能给整个游戏的界面感官带来蜕变。 请看案例 那么如何挑选适合自己的字体呢? 我总结出了一些小经验可供参考: 黑体:通用 宋体:古风、武侠、修仙 楷体:古风、武侠、修仙 圆体:卡通、动漫、Q版 科技:科幻、未来、电子 顺手分享一个免费可商用字体网站: 当然 如果你不知道自己的游戏适合什么风格
精华
122 赞
44 回复
【游戏上新】商业帝国大亨截图
【游戏上新】商业帝国大亨
无名小卒还是名扬天下。 从临时工到称霸宇宙。 只需点击屏幕,就能获得财富,利用财富购置产业,获取更多财富。
6 赞
4 回复
2D 等轴测视角:完整理论截图
2D 等轴测视角:完整理论
2D 等轴测视角:完整理论 一、视角的本质 什么是等轴测 人站在高处斜着往下看地面,地面上的方格子不再是正方形,而变成了菱形。这就是等轴测的视觉本质。 俯视(正上方看下去): 等轴测(斜上方看下去): ┌──┬──┬──┐ ◇ ├──┼──┼──┤ ◇ ◇ ├──┼──┼──┤ ◇ ◇ ◇ └──┴──┴──┘ ◇ ◇ ◇ 正方形网格经过旋转 + 压缩,变成了菱形网格。 为什么是 2:1
6 赞
开发心得-界面布局心得截图
开发心得-界面布局心得
大家好,我正在用 TapTap 制造制作一款2D 治愈林间徒步旅行游戏《徒步荒野》。 我分享一下我的开发心得,希望能有用,下面是一些界面布局的心得。 第一步:定版式、操作 先确定游戏是横版还是竖版、需要哪些操作按钮,敲定整体玩法思路。 我的玩法灵感参考《边境之旅》,主打散步看风景、沿途触发随机事件。 原版是 3D,考虑到自己是新手,选择2D 横版街机式来做,制作更简单、好上手。 第二步:敲定全局美
6 赞
3 回复
游戏自荐《少女终焉契约》截图
游戏自荐《少女终焉契约》
之前玩放置类型的rpg游戏的时候我就在想,现在游戏的操作有的太过于繁琐了,有没有一款休闲一点的,想上线就上线,离线的时候角色能自动行动的游戏呢?感谢TapTap制造,我按照我的想法开发出了现在这款游戏。 一、故事背景和UI 游戏的故事背景是传统的异世界穿越故事,玩家被女神召唤到异世界,随后组建工会,招募美少女,打怪升级探索世界。所以我选择了更加二次元萌系画风的UI风格,主页为各个主要的功能,点开来
8 赞
3 回复
【UI教程】如何将已有的效果图应用为实际的UI界面截图
【UI教程】如何将已有的效果图应用为实际的UI界面
在经过了一些折腾和比较折磨的尝试后,我总算是摸清楚了嗒啦啦怎么把UI效果图转换为实际游戏中的UI组件,今天就给大家带来这部分的经验分享。 tips:1.本篇教程需要各位掌握最基本的ps使用,具体的操作部分我会大致讲解,但仍需各位自行学习ps的基本操作,部分可以由ai代劳的环节我会注明。 2.本篇教程需要在以我前两篇教程作为前置环节,请在阅读这两篇前置教程后再进行本篇教程内容的学习 在按照前
10 赞
4 回复
「游戏上新」秦王的游戏截图
「游戏上新」秦王的游戏
你是秦王嬴政身边的廷臣。 方士徐福献上一匣【帝王卡牌】,四张凶牌封死命运: 屠戮|淫欲|奢华|征伐 七日死限,必须一一折断卡牌对应的欲望任务。 办不成? 秦王殿上长剑出鞘,君臣性命,顷刻倾覆。 ⚔游戏核心玩法 ▪回合卡牌策略,抉择牵动秦廷朝堂势力 ▪朝堂派系博弈:王权、法家、军功贵族、方士暗流角力 ▪多重结局:功成辅秦王一统,或是任务失败血染咸阳宫 ▪随机事件触发,每一局嬴政的猜忌程度截然
4 赞
2 回复