gpt4 book ai didi

java - ViewPager 不显示自定义 View

转载 作者:行者123 更新时间:2023-12-02 12:20:08 24 4
gpt4 key购买 nike

正如标题所示,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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com