【发布时间】:2011-05-15 02:31:26
【问题描述】:
在活动的 onCreate() 中,我强制将活动的方向从纵向更改为横向。这是有效的,但模拟器中有大约一秒的小延迟。此活动实际上是选项卡之一。因此,当用户单击选项卡时,他会期望立即响应。所以我想显示一个进度对话框,直到视图完全加载。我如何实现这一目标?我尝试执行以下操作,但它不起作用,
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.chart);
ProgressDialog dialog = new ProgressDialog(this);
dialog.setMessage("Loading...");
dialog.show();
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
.
.
.
dialog.dismiss();//after the view is loaded completely }
欢迎提出任何建议。
【问题讨论】:
-
如果您从横向开始,是否会发生延迟?如果您的视图需要很长时间才能加载,请在 onCreate 中加载一个更简单的视图,然后启动后台任务以加载“真实”视图,然后通过处理程序调用
setContentView(loadedChartView)。 -
"这可以工作,但在模拟器中有大约一秒的小延迟。" - 在没有 ProgressDialog 的情况下在真实设备上尝试您的 Activity。我对模拟器的体验是它经常有严重的延迟。
-
@Ted:是的。即使我在横向模式下开始也会有延迟。我认为延迟可能是因为除了将活动的方向强制为横向之外,我还隐藏了标签栏。
-
@MisterSquonk:现在,有一个想法。我希望我可以在真实设备上测试它。尽管如此,在模拟器中其他选项卡之间的切换还是非常快的。所以我应该期望切换到“图表”选项卡也必须很快,没有任何延迟。 “图表”选项卡唯一不同的是,方向发生了变化,并且选项卡栏被隐藏了。
标签: android android-activity dialog progress