java - ViewPager 不显示自定义 View

标签 java android android-viewpager android-pageradapter

正如标题所示,ViewPager 没有显示应有的内容。我已经寻找了所有解决方案,但没有一个有效。也许你们可以帮助我。提前致谢!

我想将自定义 View 动态添加到适配器,因为 View 与数据库中的数据异步。

自定义 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();
    }
}

自定义 View 已成功创建并保存在适配器的列表中,但它们没有显示在 ViewPager 中...

最佳答案

检查一下:

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

你不能比较2. View 是对象的子对象。

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

关于java - ViewPager 不显示自定义 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45851010/

相关文章:

android - Activity 中的多个 ViewPagers

java - 在 javadoc 中引用父类(super class)

java - 使用 firebase 文档的自定义用户声明的示例不起作用

java - 根据 Java EE 中的配置注入(inject)服务

android - 以编程方式创建 ListView

android - 如何实现这个小部件?

java - 十进制格式,说它需要是一个字符串?

java - 单应用定制Android ROM

android - WebView 中的文件上传

android - 使用 ViewPager 更改设备方向时不要重新创建 fragment