मैं ActionBar
और नीचे दो टैब के साथ एक ऐप बना रहा हूं। डिवाइस/एमुलेटर घुमाए जाने पर सब कुछ ठीक काम करता है। यदि घूर्णन किया गया है, तो टैब स्थिति स्वचालित रूप से टैब 1 पर स्विच करती है (सामान्य, क्योंकि onCreate
कॉल किया जाता है) लेकिन सामग्री परिवर्तित नहीं होती है। यदि मैं नए अभिविन्यास में एक टैब का चयन करता हूं, तो चयनित Fragment
से onCreateView()
विधि कॉल की जाती है लेकिन दृश्य अपडेट नहीं होता है (हमेशा वही रहें)। कोई सुझाव?घुमाव पर टुकड़े के साथ एक्शनबार टैब
कोड।
मुख्य गतिविधि:
ActionBar actionbar = getActionBar();
actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.Tab ATab = actionbar.newTab().setText(R.string.player);
ActionBar.Tab BTab = actionbar.newTab().setText(R.string.stations);
Fragment AFragment = new AFragment();
Fragment BFragment = new BFragment();
PlayerTab.setTabListener(new MyTabsListener(AFragment));
StationsTab.setTabListener(new MyTabsListener(BFragment));
actionbar.addTab(ATab);
actionbar.addTab(BTab);
समान टैब है कि एक साधारण TextView प्रदर्शन के साथ
। टेक्स्टव्यू सरल कहता है कि कौन सा टैब चुना गया है।
टुकड़े:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.a, container, false);
}
टुकड़ा लेआउट, जैसा कि ऊपर उल्लेख, केवल हार्डकोडेड पाठ के साथ एक TextView में शामिल है। (केवल परीक्षण उद्देश्यों के लिए)
मुख्य लेआउट इस तरह दिखता है।
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</LinearLayout>
</LinearLayout>
क्या आप चाहते हैं OnCreate() जब डिवाइस घुमाया जाता है के नाम से जाना? – nhaarman
हां और नहीं, इस उदाहरण में यह ठीक है। अंतिम ऐप में, ठीक है, लेकिन मुझे लगता है कि सबसे अच्छा तरीका नहीं है। क्या आप 'android का उपयोग करना चाहते हैं: configChanges =" keyboardHidden | ओरिएंटेशन "'? मैंने इसके बारे में पढ़ा और किसी ने मेमोरी लीक और अंतिम उपाय के बारे में कुछ कहा। क्या वह सही है? क्या कोई बेहतर तरीका है? – Leandros