Java-通过切换300个以上的CheckBoxes来改善用户体验

Java-通过切换300个以上的CheckBoxes来改善用户体验,第1张

概述我制作了一个简单的烹饪应用程序,用户可以在其中选择多个项目,并获得包含所选食材的食谱列表.有两种选择成分的模式:按标签和按复选框.在第二种模式下,您可以输入所需成分的数量,然后单击“随机化”按钮,或仅按“选择/取消选择所有成分”按钮.问题开始于超过300个复选框(具体来说是3

我制作了一个简单的烹饪应用程序,用户可以在其中选择多个项目,并获得包含所选食材的食谱列表.有两种选择成分的模式:按标签和按复选框.在第二种模式下,您可以输入所需成分的数量,然后单击“随机化”按钮,或仅按“选择/取消选择所有成分”按钮.问题开始于超过300个复选框(具体来说是386个)的复选框.代码工作正常,但是GUI保持冻结的时间太大.

因此,我有HashMap< String / CheckBox> checkBoxHashMap,其中key是复选框的标记.要选择全部(与取消选择全部相同,但值为假),我使用以下代码:

for (CheckBox chkBox: checkBoxHashMap.values()) {        chkBox.setChecked(true);    }

我尝试使用的是:
1)使用Progressbar.问题是,在选择/取消选择所有CheckBox期间,Progressbar的动画被冻结了.另外,大多数时候Progressbar甚至都没有显示出来(在选中所有CheckBox之后,我隐藏了Progressbar;
2)使用chkBox.jumpDrawablesToCurrentState();在调用chkBox.setChecked(true)之后这是我可以获得的最好成绩,但是仍然落后并且不满意我.

我想要的是:
我想使其更加用户友好(我相信冻结的GUI根本不是用户友好的).我想实现软切换开/关所有CheckBox(类似链的动画)或禁用动画并在所有CheckBox更改其状态并重新绘制它们之后重新启用动画的功能.

有没有办法实现这样的目标?

解决方法:

老实说,如果我是你,我会使用RecyclerVIEw来处理这种情况.

在屏幕上同时显示300个项目绝不是一个好主意:用户不可能一次需要所有这些项目,系统也不应该处理此类负载.

该概念是回收视图,这意味着,一旦视图变得不可见,就将丢弃该视图所需的资源,并可将其重新用于另一个数据单元.

我通过很多示例对RecyclerVIEw进行了介绍性的article

在您的特定情况下,只需为复选框设置适当的数据集并异步更改它,就可以在UI线程上使用此 *** 作的结果来更新RCV(与您现在拥有的 *** 作相比,这是一个非常轻量级的 *** 作)

总结

以上是内存溢出为你收集整理的Java-通过切换300个以上的CheckBoxes来改善用户体验全部内容,希望文章能够帮你解决Java-通过切换300个以上的CheckBoxes来改善用户体验所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1092177.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存