टैबलेट पर हमारे पास दो टुकड़े (एक ही डेटा के दो अलग-अलग विचार) हैं जो एक दूसरे के बगल में बैठते हैं। मोबाइल उपकरणों पर हम एक बटन के धक्का पर इन दो टुकड़ों के बीच स्विच करना चाहते हैं। मोबाइल लेआउट इस तरह दिखता है:एकल गतिविधि में फ्रैगमेंट्स को स्वैपिंग?
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.container, new FragB());
fragmentTransaction.commit();
... लेकिन मैं हमेशा देख सकते हैं:
<RelativeLayout>
<fragment id="container" name="fragA"/>
<ImageButton onClick="swapFragments" />
</RelativeLayout>
गतिविधि के swapFragments(View)
विधि में, मैं FragmentManager
उपयोग करने के लिए बदलने के लिए fragA
fragB
साथ प्रयास कर रहा हूँ fragA
fragB
के पारदर्शी हिस्सों के माध्यम से, मुझे विश्वास है कि यह fragB
fragA
के शीर्ष पर रख रहा है, इसे प्रतिस्थापित नहीं कर रहा है।
मैं hide(Fragment)
और लेनदेन में समान तरीकों का उपयोग करने का मार्ग शुरू कर रहा हूं, लेकिन ऐसा करने का सही तरीका नहीं दिखता है।
इन टुकड़ों को सही तरीके से स्वैप करने के तरीके पर कोई सुझाव?
संपादित करें: मैंने this question का उत्तर देखा। यह मुझे भ्रमित करता है, हालांकि, मुझे टैबलेट और फोन के लिए एक अलग लेआउट निर्दिष्ट करने में सक्षम होना चाहिए। मैं प्रोग्राम के रूप में टुकड़े को जोड़ने के लिए है, तो मैं कैसे गतिविधि में प्रत्येक लेआउट के लिए विशिष्ट कोड से बचने के है (यानी
if(TABLET) {
addFragmentA();
addFragmentB();
} else {
addFragmentA();
}
क्या आपको इस समस्या का कोई समाधान मिला? –