这篇文章是关于一个受欢迎的,讨论得很好的主题 - 处理屏幕方向。即使它被广泛讨论,我也很难为应用程序绘制一个有效的解决方案,迫使我在这里写。
因此,该应用基本上是使用TabHost制作的标签。每个选项卡都是一个活动组。该应用程序主要使用AsyncTask从Web服务获取数据。每个子活动都附加到一个AsyncTask,它包含一个UI处理程序对象 - 显示所有与UI相关的操作,例如显示警报消息和附加listView适配器。
例如,从活动调用asynctask如下。
UIHandler handler = new UIHandler(this, getParent()) //parent context of the tab
CustomAsyncTask taskRunner = new CustomAsyncTask(handler);
taskRunner.execute(params);
我尝试使用保存和恢复实例状态,这显然不起作用。我发现在我的场景中使用配置会让人感到困惑。
希望我确实解释了这个立场。你能建议出路吗?
注:
如果我应该提供更多细节来支持这一幕,请告诉我。
目前的处理方式:
我对大多数屏幕都有一个布局。它适用于清单文件中的单行。
android:configChanges="keyboard|keyboardHidden|orientation"
但现在,我有两个屏幕有两个布局,每个方向一个。
编辑
我有一个使用自定义适配器的ListView。从服务器获取数据,UI处理程序正确加载listView。
在Custom adapter的getView()中,我使用布局xml作为行布局。
public View getView(int position, View convertView, ViewGroup parent) {
convertView = mInflater.inflate(R.layout.custom_fullpicturerow, null);
}
在方向更改时,如何更改上述布局并加载新布局?