如何立即打开活动然后加载其布局

发布于 2024-11-28 03:16:21 字数 514 浏览 0 评论 0原文

事情是这样的:我有一个沉重的布局,无法进一步改进,因为它包含带有权重的 LinearLayouts (所以我不能使用relativelayouts)。 在活动 A 中,我单击触发活动 B 的列表项。活动 A 冻结,直到活动 B 完全加载,然后显示活动 B。所以这是完整的事件队列:

  1. 活动 A:打开 B
  2. 活动 A:冻结
  3. 活动 B:完成通货膨胀/setContentView
  4. 活动 A:返回到应用程序堆栈
  5. 活动 B:显示

我如何立即显示活动 B< /strong> 这样 Activity A 就不会冻结? 我考虑过在 B 中膨胀一个临时布局,但我需要一个回调方法来告诉我 B 完全可见,然后我可以用真实布局替换临时布局。

谁能帮助我吗? 谢谢你!

题外话:Android 中的布局膨胀确实很痛苦,它不应该阻塞整个 UI,但确实如此。设置列表适配器也是如此。

Here's the deal: I have a heavy layout that cannot be improved any further, as it contains LinearLayouts with weights (so I cannot use RelativeLayouts).
In Activity A, I click on a list item that fires off Activity B. Activity A freezes until Activity B is fully loaded, then Activity B gets shown. So this is the complete queue of events:

  1. Activity A: open B
  2. Activity A: freezes
  3. Activity B: finishes inflation/setContentView
  4. Activity A: goes back into the application stack
  5. Activity B: gets shown

How can I immediately show Activity B so that Activity A won't freeze?
I thought about inflating a temporary layout in B, but I need a callback method that tells me that B is fully visible and I can then replace the temporary layout with the real one.

Can anyone help me?
Thank you!

Off topic: layout inflation in Android is a real pain, it shouldn't block the whole UI, but it does. Same thing for setting list adapters.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

旧故 2024-12-05 03:16:21

您应该在线程中执行 Activity B 的任务,如果您需要在任务完成后更新 UI,请使用处理程序执行此操作。

You should do your time taking task of Activity B in thread and if you need to update the UI after your task completes then do it using handler.

故人的歌 2024-12-05 03:16:21

您可以使用 AsyncTask 进行耗时的加载。您可以使用

 doInBackgroundMethod to load the data
 onProgressUpdate you can bind your layout to data.

如果您这样你的 Activity 就不会被冻结

You can do your time consuming loading using AsyncTask .You can use

 doInBackgroundMethod to load the data
 onProgressUpdate you can bind your layout to data.

If you works this way your Activity will not be frozen

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文