में एक पंक्ति के रूप में ViewPager को रखने के लिए मैं ViewPager को पंक्ति सूची सूची के रूप में उपयोग करने का प्रयास करता हूं लेकिन एक विचित्र व्यवहार प्राप्त करता हूं - केवल पहली पंक्ति कार्य करता है, लेकिन जब मैं सूची स्क्रॉल करता हूं तो यह गायब हो जाता है। जब मैं एक खाली पंक्ति स्क्रॉल करता हूं, अचानक ऊपर की पंक्ति देखी जा रही है। ऐसा लगता है जैसे एंड्रॉइड एक पेजर बनाता है और सभी पंक्तियों के लिए इसका उपयोग करता है।ListView
यह मैं क्या देख जब मैं एप्लिकेशन लॉन्च है:
public class MyFriendsAdapter extends BaseAdapter implements OnClickListener {
private ArrayList<UiD_UserFriend> mItems;
private Context mContext;
private FragmentManager mFragmentManager;
public MyFriendsAdapter(Context context, ArrayList<UiD_UserFriend> items, FragmentManager fragmentManager) {
mContext = context;
mItems = items;
mFragmentManager = fragmentManager;
}
@Override
public int getCount() {
return mItems.size();
}
@Override
public Object getItem(int position) {
return mItems.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View currentView, ViewGroup viewGroup) {
Holder holder = null;
if (currentView == null) {
currentView = View.inflate(mContext, R.layout.view_list_item_myfriends, null);
holder = new Holder();
holder.textViewUserName = (TextView) currentView.findViewById(R.id.textViewFriendName);
holder.mMyFriendspager = (ViewPager) currentView.findViewById(R.id.pagerMyFriendHabits);
currentView.setTag(holder);
} else {
holder = (Holder) currentView.getTag();
}
holder.textViewUserName.setText(mItems.get(position).getmName());
MyFriendPagerAdapter tempMyFriendPagerAdapter = new MyFriendPagerAdapter(mFragmentManager, mItems.get(position).getFriendHabits());
holder.mMyFriendspager.setAdapter(tempMyFriendPagerAdapter);
return currentView;
}
class Holder {
TextView textViewUserName;
ViewPager mMyFriendspager;
}
}
:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:orientation="vertical"
android:paddingBottom="2dp" >
<TextView
android:id="@+id/textViewFriendName"
style="@style/TextStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/myFriendsBg"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:text="TextView" />
<View style="@style/DividerHorizontalStyle_gray" />
<android.support.v4.view.ViewPager
android:id="@+id/pagerMyFriendHabits"
android:layout_width="match_parent"
android:layout_height="@dimen/DefaultImageHeight" />
<View style="@style/DividerHorizontalStyle" />
</LinearLayout>
यह मेरी सूची एडाप्टर है:
यह मेरा पंक्ति लेआउट है यह मेरा पेजर एडाप्टर है:
public class MyFriendPagerAdapter extends FragmentPagerAdapter {
private ArrayList<UiD_Habit> mHabits;
public MyFriendPagerAdapter(FragmentManager fm, ArrayList<UiD_Habit> habits) {
super(fm);
mHabits = habits;
}
@Override
public Fragment getItem(int index) {
return new FragmentMyFriendPage(mHabits.get(index));
}
@Override
public int getCount() {
return mHabits.size();
}
}
हे यू इस कार्यान्वयन के लिए पूर्ण कोड साझा कर सकते हैं। thnx –
आपने समस्या को हल कैसे किया है, मुझे रीसाइक्लर-व्यू – Dory