我有两个标签的活动,它实现了两个类似的片段,每个片段由 GridView 组成,通过 AsyncTask 加载项目,它可以正常工作,直到屏幕方向改变为止。之后,只能点击操作栏并在标签之间切换,但 GridViews 完全停止与用户交互:滚动,点击或其他任何内容。除了标准 onSaveInstanceState(Bundle outState)和 onRestoreInstanceState(Bundle savedInstanceState)之外,其他任何东西都已实现。
我不知道这个问题,需要帮助。
UPD :嗯,在每次新的方向更改后,会出现一个新的片段实例。
UPD2 :删除了不需要的代码。
答案 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");
}