0

我有两个选项卡的活动,它实现了两个类似的片段,每个片段由GridView组成,通过AsyncTask加载项目并且它工作正常,直到屏幕方向改变......之后它只能点击操作栏并在选项卡之间切换,但是GridViews完全停止与用户交互:滚动、单击或其他任何操作。只实现了标准的 onSaveInstanceState(Bundle outState)onRestoreInstanceState(Bundle savedInstanceState)

我不知道这个问题,需要帮助。

UPD:嗯,每次新的方向改变后,都会出现一个新的片段实例。

UPD2:删除了不需要的代码。

4

2 回答 2

0

解决了问题!

问题出在 Activity.onCreate 和选项卡创建机制中。

每次在状态更改后重新创建活动时 onCreate 都会添加一个新选项卡,因此

    if(savedInstanceState == null){

检查解决问题。这是完整的、正常工作的 OnCreate 方法:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    final ActionBar actionBar = getActionBar();
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    actionBar.setDisplayShowTitleEnabled(false);
    if(savedInstanceState == null){
        Tab tab = actionBar.newTab()
                .setText("TabLabel")
                .setTabListener(new TabListener<FileFragment>(
                        this, "TabTag", FileFragment.class));
        actionBar.addTab(tab);
    }
    Log.d("Activity.OnCreate", "Creating Activity");

}
于 2012-07-14T09:05:55.083 回答
0

您的活动将在方向更改时重新创建。

尝试将 android:configChanges="keyboardHidden|orientation" 添加到清单中的设置中。这将防止您的活动被重新创建。

于 2012-07-13T19:58:30.697 回答