我有一个SherlockListFragment
通过使用将导航模式列表微调器放在操作栏中的setNavigationMode(ActionBar.NAVIGATION_MODE_LIST)
. 这很好用,但我注意到导航微调器在改变方向时消失了。我设法弄清楚这是因为我调用setRetainInstance(true);
,将其设置为 false 修复了导航微调器消失的问题,但我确实需要保留此片段的实例,因此将其设置为 false 是没有选择的。
我尝试回忆setNavigationMode(ActionBar.NAVIGATION_MODE_LIST)
方向变化,但这并没有解决问题。旋转器似乎永远消失了......
是什么导致操作栏中的导航微调器在更改方向时消失?我怎么把它带回来?
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AsyncTask<String, Integer, String[]> asynctask = new DownloadFilesTask(this).execute(url);
setRetainInstance(true);
Context context = getSherlockActivity().getSupportActionBar().getThemedContext();
ArrayAdapter<CharSequence> list = ArrayAdapter.createFromResource(context, R.array.options, R.layout.sherlock_spinner_item);
list.setDropDownViewResource(R.layout.sherlock_spinner_dropdown_item);
getSherlockActivity().getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
getSherlockActivity().getSupportActionBar().setListNavigationCallbacks(list, this);
}
编辑:
有人发布了使用的解决方案android:configChanges="orientation"
并删除了他的答案。我对此进行了调查,并android:configChanges="orientation|screenSize"
确实为我解决了问题。但是,这似乎更像是一种解决方法,而不是实际的解决方案。哦,好吧...