首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何挂起版面图?

如何挂起版面图?
EN

Stack Overflow用户
提问于 2018-06-20 11:27:29
回答 1查看 158关注 0票数 1

在.NET下,您可以调用SuspendLayout() / ResumeLayout()。

在Android系统下有类似的产品吗?

我的理由是这..。我有一个包含多达64“面板”的RelativeLayout (另一个带有3个TextView子版的RelativeLayout )。

通过串行通信链接,我得到一条XML消息,描述要显示的面板的数量、它们的大小以及在每个可见面板的3个文本视图中放置什么。

初始代码全部工作,我可以显示一页的面板。

然而,当我得到一个新的XML消息时,我隐藏所有面板,重新定位在新XML消息中定义的面板,更新每个面板的3个文本视图,然后显示正在使用的面板。

同样,这是可行的,但当所有面板被隐藏时,页面会变为空白(可能1-2秒),然后所有的新面板都会出现。

我猜想隐藏/显示面板是一个相对较快的过程,但是解码XML和更新面板文本/字体/颜色/etc需要一段时间才能重新启用面板。

我想知道如何在更新顶级RelativeLayout时“挂起”绘图过程,然后在所有视图初始化后“恢复”绘图。

有办法这样做吗?

还是我从错误的角度来处理这件事?如果是的话,最好的尝试方法是什么?

-更新

好吧,似乎我有点过早,因为我在代码中发现了一个“怪癖”,导致了1-2秒的延迟(一条未处理的XML消息)。

但谢谢你抽出时间给我指点。在我无聊的时候读一点光!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-20 11:46:07

您应该做的第一件事是计算出可以将多少工作委托给后台线程(例如,“解码XML")。然后,您可以使用Looper.getMainLooper()安全地更新UI。

最好是充气和填充新的布局,然后交换它们,而不是更新可见的布局。然后,您可以拥有一组可回收的视图,即维护的视图数量是显示视图的两倍。这正是RecyclerView的要点(也请参见“用RecyclerView创建列表”)。

活数据可能也是值得您研究的。

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

https://stackoverflow.com/questions/50947142

复制
相关文章

相似问题

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