दिखाई नहीं दे रहा है मुझे एक ViewPager + FragmentPageAdapter के साथ कोई समस्या है।व्यूपेजर टुकड़े मनोरंजन, फिर से शुरू हो गए हैं लेकिन
परिदृश्य: मैं एक टुकड़ा ए टुकड़ा एक टुकड़ा बी 1 ई टुकड़ा बी 2 के साथ एक ViewPager है अंदर के साथ एक गतिविधि है। बी 1 ई बी 2 एक ही कक्षा है, लेकिन विभिन्न डेटा तर्क के रूप में हैं।
समस्या: सब कुछ निर्माण समय पर अच्छी तरह से काम करता है। लेकिन जब ऐप पृष्ठभूमि में जाता है और एंड्रॉइड द्वारा प्रक्रिया को मार दिया जाता है, तो अंतिम स्थिति को पुनर्स्थापित करने की कोशिश कर रहा है, ऐप को दोबारा डालने की कोशिश कर रहा है, फ्रैगमेंट बी 1 ई बी 2 अग्रभूमि में दिखाई नहीं दे रहा है, जबकि फ्रैगमेंट ए है। थोड़ा अजीब लगता है कि फ्रैगमेंट बी 1 ई बी 2 फ्रैगमेंट ए के चाइल्डफ्रैगमेंट मैनेजर में हैं और फिर से शुरू हो गए हैं क्योंकि ऑनस्टार्ट() और ऑनस्यूम() को लॉग द्वारा देखा जाता है। इसके अलावा पेजर दो पृष्ठों के साथ फिर से शुरू हो गया है, लेकिन कुछ भी दिखाई देने के साथ खाली या बेहतर है।
अगर मैं अच्छी तरह से समझता हूं कि FragmentPagerAdapter कैसे काम करता है, तो इसकी ज़िम्मेदारी अपने स्वयं के टुकड़ों का प्रबंधन करना चाहिए और उन्हें कैसे बनाया जाना चाहिए। इसके अलावा इस बिंदु को लागू करने के लिए, FragmentPagerAdapter पृष्ठभूमि से वापस आने पर getItem (int स्थिति) को कॉल नहीं करता है यदि पहले से निर्दिष्ट स्थिति के साथ उस स्थिति में एक टुकड़ा मौजूद है।
... तो मैं फ्रैगमेंट बी 1 ई बी 2 क्यों नहीं देख सकता, लेकिन केवल पेजर खाली है?
यह मेरा नमूना कोड है।
FragmentA
@Override
public void onStart() {
super.onStart();
populateViewPager();
}
private void populateViewPager() {
pager.setAdapter(new MyFragmentPageAdapter(getChildFragmentManager()));
indicator.setViewPager(pager);
indicator.notifyDataSetChanged();
}
FragmentPagerAdapter
public class MyFragmentPageAdapter extends FragmentPagerAdapter {
public MyFragmentPageAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return FragmentB.newInstance(position);
}
@Override
public int getCount() {
return 2;
}
@Override
public CharSequence getPageTitle(int position) {
String title = "";
if (position == 0)
title = "Fragment B1";
else if (position == 1)
title = "Fragment B2";
return title;
}
}
टुकड़ा बी
public static FragmentB newInstance(int position) {
FragmentB f = new FragmentB();
Bundle b = new Bundle();
b.putInt(POSITION_IN_PAGER_ARGUMENT, position);
f.setArguments(b);
return f;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(TAG, "onCreate");
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
Log.d(TAG, "onCreateView");
View root = inflater.inflate(R.layout.fragment_b_layout, container, false);
empty = (TextView) root.findViewById(R.id.empty);
list = (ListView) root.findViewById(R.id.list);
return root;
}
@Override
public void onStart() {
super.onStart();
Log.d(TAG, "onStart");
populateListView(loadData());
}
@Override
public void onStop() {
super.onStop();
}
}
कोई मदद? कृप्या। – Noodles
आपका FragmentPagerAdapter बहुत खाली लगता है è.è –
क्या आपको इसका कोई समाधान मिला? थोड़ी देर के लिए एक ही समस्या के साथ अटक गया है। – Slickelito