當在片段更改的ActionBar,稱爲活動我顯示這樣的總線線路的列表中:使用片段
然後,一旦用戶點擊「站」,我喜歡顯示當然的電臺列表。 我使用這個代碼:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.act_long_distance);
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.add(R.id.f_long_distance, new LongDistanceFragment()).commit();
}
@SuppressWarnings({"UnusedDeclaration"})
public void showStationList(View view) {
String tag = (String) view.getTag();
if (tag != null && tag.length() > 0) {
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
StationListFragment fragment = new StationListFragment(tag.split(","));
ft.add(R.id.f_long_distance, fragment);
// ft.replace(R.id.f_long_distance, fragment);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.addToBackStack(null);
ft.commit();
}
}
的XML這項活動是:
<LinearLayout
android:id="@+id/ll_container"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<FrameLayout
android:id="@+id/f_long_distance"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</LinearLayout>
StationListFragment是一個簡單的ListFragment在另一個的頂部顯示:
雖然是ActionBar,但它現在正確地包含標題只要。
什麼不行,如果我現在按回。站列表是隱藏的,但舊的動作條未恢復:
該文檔是說添加的動作條的方式是使用onCreateOptionsMenu方法等
所以,在LongDistanceFragment(第一個顯示),我創建這樣的吧:
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
Log.d(TAG, "onViewCreated");
super.onViewCreated(view, savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
ActionBar bar = getSupportActivity().getSupportActionBar();
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
bar.setListNavigationCallbacks(new SimpleSpinnerArrayAdapter(getActivity()), this);
}
但不知何故它不會恢復,一旦用戶回到該片段。
我想回滾Fragment Transaction時需要恢復ActionBar狀態的一種方法。
我錯過了什麼?謝謝你的幫助。
我現在也在爲此而戰。這是一個相關的問題。 http://stackoverflow.com/questions/6503189/fragments-onresume-from-back-stack –