我想在加载时(即不在对话框中)显示ProgressBar微调器代替另一个View。要清楚,我只希望ProgressBar替换一个View,而不是接管Window或Activity。
我能想到的最佳解决方案是将ProgressBar和实际的View放在布局中,ProgressBar可见性设置为VISIBLE,View可见性设置为GONE。加载后,我交换了他们的可见性。
这会有效,但我希望有一个更优雅的解决方案。有什么建议吗?
答案 0 :(得分:2)
我能想到的最佳解决方案是同时放置ProgressBar和 将布局中的实际视图设置为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);
答案 1 :(得分:1)
如果您正在使用AdapterView,则可以调用setEmptyView()方法。有关示例,请参阅here。