का उपयोग कर एक टुकड़ा में 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();
}
}
इस गतिविधि के लिए एक्सएमएल है:
<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 पुनर्स्थापित नहीं होती:
डॉक्स कह रहे हैं कि जिस तरह से 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);
}
लेकिन किसी भी तरह उसे पुनर्स्थापित नहीं किया गया है एक बार उपयोगकर्ता है कि टुकड़ा में वापस आ गया है।
मुझे लगता है कि फ्रैगमेंट लेनदेन को वापस लेते समय एक्शनबार की स्थिति को पुनर्प्राप्त करने का एक तरीका आवश्यक है।
मुझे क्या याद आ रही है? किसी भी मदद के लिए धन्यवाद।
मैं इस समय भी इस से जूझ रहा हूं। यहां एक संबंधित प्रश्न है। http://stackoverflow.com/questions/6503189/fragments-onresume-from-back-stack –