屏幕方向更改后,GridView会停止交互

时间:2012-07-13 19:41:24

标签: android gridview android-fragments fragment

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

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

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

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分: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");

}