首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算可变大小菜单选项的位置

问计算可变大小菜单选项的位置
EN

Software Engineering用户
提问于 2020-07-09 23:49:21
回答 1查看 40关注 0票数 -2

不完全确定这是否是最合适的社区但是..。

我正在寻找解决方案来计算菜单选项的位置,当选项的数量变化,以及每个选项的大小可能不同时(由于文本包装)。

我们当前的代码使用两个变量运行一个for循环,一个用于选项总数,另一个用于一次在屏幕上显示多少。位置被计算为startYposition + 0.038 * number of options already on screen,这对于单行条目很好,但是一旦考虑到可变高度,它就会变得很糟糕。

我可以知道一个选项的高度,通过渲染它,但不把它放在屏幕上立即。

对我如何处理这个问题有什么想法吗?

EN

回答 1

Software Engineering用户

发布于 2020-07-10 01:13:38

像素拾取

将每个菜单项绘制到与您要选择的窗口大小相同的缓冲区中。除了当你画的项目,颜色整个可点击区域一种颜色。每可点击一种不同的颜色。进入像素并读取它的颜色,使用您的颜色地图点击可点击,以发现什么是点击。

这甚至适用于3d物体。

制备

保持类似于可点击的r树的东西。R-树中有可点击的包围框.当给定项绘制(如菜单项)时,它会更新其边界框,可能会从树中完全添加/删除自身。当接收到单击时,查询r-树并找出可能单击的是谁。

如果你得到一个以上的结果,你可以通过寻找可见的对象,或者根据Z顺序进行排序,或者发明你自己的语义选择器,这样最明显的/下一个点击就可以得到焦点。

A TUI?

使用单空格字体。这将从审议中删除核化问题。

您应该能够确定每个字符的像素宽度,以及每行像素将给出一行换行之前的字符数。每个浏览器可能会出现一些问题,因为特定的div报告了800像素,但是行提前包装了20像素。不幸的是,必须对此进行调整。

交替地固定每行字符数,关闭行包装,并启用水平滚动。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/412557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档