1

我想在加载时显示一个 ProgressBar 微调器来代替另一个视图(即不在对话框中)。需要明确的是,我只希望 ProgressBar 替换一个 View,而不是接管 Window 或 Activity。

我能想到的最好的解决方案是在布局中同时放置一个 ProgressBar 和实际的 View,ProgressBar 的可见性设置为 VISIBLE,View 的可见性设置为 GONE。加载后,我交换了它们的可见性。

这会起作用,但我希望有一个更优雅的解决方案。有什么建议么?

4

2 回答 2

2

我能想到的最好的解决方案是在布局中同时放置一个 ProgressBar 和实际的 View,ProgressBar 的可见性设置为 VISIBLE,View 的可见性设置为 GONE。加载后,我交换了它们的可见性。

这是一个完全合法的解决方案。如果你不喜欢它,你可以尝试以下方法:

添加一个空容器布局(LinearLayout、RelativeLayout 等),您将在其中放置ProgressBarView后面的。在对话框的视图中找到这个容器:

container = (_____Layout) dialogView.findViewById(R.id.container_id); 

创建ProgressBar并在结束View后跟随loading

ProgressBar pb = ....;

View v = ....;

在您的代码中,何时loading开始:

container.addView(pb);

一旦loading完成:

container.removeAllViews();
container.addView(v);
于 2013-08-27T02:12:35.897 回答
1

如果您碰巧使用的是 AdapterView,则可以调用setEmptyView()方法。有关示例,请参见此处。

于 2013-08-27T00:58:21.357 回答