2017-08-24 13 views
0

というタイトルは、ViewPagerが想定されているコンテンツを表示していないことを示しています。私は解決策を探し求めましたが、どれも解決しませんでした。多分あなたたちは私を助けることができます。前もって感謝します!ViewPagerがカスタムビューを表示していない

ビューはデータベースのデータと非同期になるため、アダプタにカスタムビューを動的に追加したいとします。

カスタムPagerAdapter

public class SlidePagerAdapter extends PagerAdapter { 

    private Context mContext; 
    private List<CardView> mCards; 

    public SlidePagerAdapter(Context context) { 
     mContext = context; 
     mCards = new ArrayList<>(); 
    } 

    @Override 
    public int getCount() { 
     return mCards.size(); 
    } 

    @Override 
    public int getItemPosition (Object object) { 
     int index = mCards.indexOf(object); 
     if (index == -1) 
      return POSITION_NONE; 
     else 
      return index; 
    } 

    @Override 
    public Object instantiateItem(ViewGroup container, int position) { 
     View v = mCards.get(position); 
     container.addView(v); 
     return container; 
    } 

    @Override 
    public void destroyItem (ViewGroup container, int position, Object object) { 
     container.removeView(mCards.get(position)); 
    } 

    @Override 
    public boolean isViewFromObject(View view, Object object) { 
     return view == object; 
    } 

    public void add(Card card) { 
     mCards.add(new CardView(mContext, card)); 
    } 

    public void addAll(List<Card> cards) { 
     for (Card card : cards) { 
      add(card); 
     } 
    } 

    public void clear() { 
     mShopcards.clear(); 
    } 
} 

カスタムビューが行われ、保存されたリストで、アダプタに成功し、彼らはViewPagerに表示されませんされている...

答えて

0

はこれをチェック:

@Override 
public boolean isViewFromObject(View view, Object object) { 
return view == object; 
} 

2.ビューはオブジェクトの子ではありません。

@Override 
public Object instantiateItem(ViewGroup container, int position) { 
View v = mShopcards.get(position); 
container.addView(v); 
return container; 
} 
関連する問題