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 中的片段,而不重新创建它们?