Honeycomb 中的片段加载微调器/对话框

Posted

技术标签:

【中文标题】Honeycomb 中的片段加载微调器/对话框【英文标题】:Fragment loading spinner/dialog in Honeycomb 【发布时间】:2011-07-16 03:31:40 【问题描述】:

当将数据加载到我的片段中时,我希望片段中间有一个不确定的微调器(下图中的示例),以向用户显示内容正在该特定窗格中加载。

在 Honeycomb 中执行此操作的最佳方法是什么?

我真的不想在操作栏中使用微调器,数据加载的位置并不是很明显。此外,我不想要一个不确定的进度对话框,因为它出现在整个应用程序的中心,并且还会阻止用户执行任何其他操作,直到它被关闭。注: FragmentDialogs 似乎也这样做。

我是否必须使用自定义 FrameLayout 来获得每个窗格所需的效果?

【问题讨论】:

【参考方案1】:

如果您使用的是ListFragment,您可以调用setListShown(false) 来显示加载进度指示器,直到您调用setListShown(true)。您可以在片段的Loader 回调方法中调用这些,以在列表加载时显示指示器。

【讨论】:

@J-Knight 嘿,伙计,我遇到了 IllegalStateException(“不能与自定义内容视图一起使用”);当我使用 setListShown。我在 ListFragment.onActivityCreated 中使用 false 来显示进度,在 onStart 中使用 true 来显示列表和隐藏进度。什么是 Fragments Loader 回调? @towpse 我猜错误说明了一切:这不适用于自定义 listView 布局。但是,它应该适用于标准列表视图。【参考方案2】:

我认为最好的方法是使用 ViewSwitcher。然后,如果您使用的是加载器,您可以在加载完成后在视图(加载视图和内容视图)之间切换。

【讨论】:

以上是关于Honeycomb 中的片段加载微调器/对话框的主要内容,如果未能解决你的问题,请参考以下文章

如何从该片段中的 onItemSelectedListener 中获取微调器单击的项目?

Android Honeycomb:如何更改 FrameLayout 中的片段,而不重新创建它们?

Android Honeycomb:如何更改 FrameLayout 中的片段,而不重新创建它们?

Android 日期选择器片段更改为微调器

如何将微调器的值放入不同的片段中?

将微调器值从片段传递到活动