मैं ViewPagers की एक सूची को कार्यान्वित करना चाहता हूं। ListView का प्रत्येक आइटम ViewPager है। यह अब तक काम करता है। मेरी समस्या यह है कि, मैं ViewPager की स्थिति को बनाए रख नहीं सकता। उदाहरण के लिए: जब मैं सूची में पहले ViewPager का पृष्ठ बदलता हूं, तब तक नीचे स्क्रॉल करें जब तक कि पहला ViewPager अब दिखाई नहीं दे रहा है और फिर फिर से स्क्रॉल करें, पहला ViewPager फिर से अपना पहला पृष्ठ दिखाता है।ListView में ViewPager की स्थिति को कैसे बनाए रखें?
मैंने दो एडेप्टर लिखे, एक सूची दृश्य के लिए और एक ViewPager के लिए। मैं ListAdapter में getView विधि के कनवर्ट व्यू पैरामीटर से दृश्य को रीसायकल करने का प्रयास कर रहा हूं। सुनिश्चित नहीं है कि मैं इसे सही कर रहा हूं और नहीं जानता कि ViewPagerAdapter में इसे कैसे किया जाए।
कोई भी विचार? MyListAdapter से
getView: ViewPagerAdapter से
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView == null){
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mRowView = inflater.inflate(R.layout.listitem, parent, false);
}else{
mRowView=convertView;
}
switch(position){
case 0://Fussball
ViewPagerAdapter fussballAdapter = new ViewPagerAdapter(mContext,"Fussball");
ViewPager fussballPager = (ViewPager) mRowView.findViewById(R.id.viewpager1);
fussballPager.setAdapter(fussballAdapter);
break;
case 1://Handball
ViewPagerAdapter handballAdapter = new ViewPagerAdapter(mContext,"Handball");
ViewPager handballPager = (ViewPager) mRowView.findViewById(R.id.viewpager1);
handballPager.setAdapter(handballAdapter);
break;
//.../
default:
//Do nothing
}
return mRowView;
}
instantiateItem:
@Override
public Object instantiateItem(View pager, int position) {
inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
switch(position){
case 0:
oneLayout=inflater.inflate(R.layout.table_layout, null);
break;
case 1:
oneLayout=inflater.inflate(R.layout.table_layout_second, null);
break;
default:
oneLayout=inflater.inflate(R.layout.table_layout, null);
break;
}
((ViewPager)pager).addView(oneLayout, 0);
return oneLayout;
}
धन्यवाद
यहाँ मेरी कोड अब तक है! :)
आपको पृष्ठ की वर्तमान स्थिति को वर्तमान पृष्ठ को खोजने की आवश्यकता है यानी पहले पृष्ठ से अगले पृष्ठ तक? –
ViewPagerAdapter में getPosition() फ़ंक्शन या उसमें कुछ ऐसा होना चाहिए। –
धन्यवाद, फ्रैंक। मैंने पहले ही इसी तरह के समाधान के बारे में सोचा है, लेकिन मेरी समस्या है MyListViewAdapter के अंदर से वर्तमान ViewPager स्थिति प्राप्त करना। GetCurrentItem() नामक एक विधि है जो इसे करना चाहिए, लेकिन मुझे हमेशा "0" वापस मिल जाता है। (मैं इसे ViewView विधि के अंदर ViewPager के ऑब्जेक्ट पर उपयोग करता हूं) – kiberNet