我想在加载时显示一个 ProgressBar 微调器来代替另一个视图(即不在对话框中)。需要明确的是,我只希望 ProgressBar 替换一个 View,而不是接管 Window 或 Activity。
我能想到的最好的解决方案是在布局中同时放置一个 ProgressBar 和实际的 View,ProgressBar 的可见性设置为 VISIBLE,View 的可见性设置为 GONE。加载后,我交换了它们的可见性。
这会起作用,但我希望有一个更优雅的解决方案。有什么建议么?
我想在加载时显示一个 ProgressBar 微调器来代替另一个视图(即不在对话框中)。需要明确的是,我只希望 ProgressBar 替换一个 View,而不是接管 Window 或 Activity。
我能想到的最好的解决方案是在布局中同时放置一个 ProgressBar 和实际的 View,ProgressBar 的可见性设置为 VISIBLE,View 的可见性设置为 GONE。加载后,我交换了它们的可见性。
这会起作用,但我希望有一个更优雅的解决方案。有什么建议么?
我能想到的最好的解决方案是在布局中同时放置一个 ProgressBar 和实际的 View,ProgressBar 的可见性设置为 VISIBLE,View 的可见性设置为 GONE。加载后,我交换了它们的可见性。
这是一个完全合法的解决方案。如果你不喜欢它,你可以尝试以下方法:
添加一个空容器布局(LinearLayout、RelativeLayout 等),您将在其中放置ProgressBar
或View
后面的。在对话框的视图中找到这个容器:
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);
如果您碰巧使用的是 AdapterView,则可以调用setEmptyView()方法。有关示例,请参见此处。