首页 > 解决方案 > 使用卡片视图查看寻呼机

问题描述

我在我的应用程序中实现了视图寻呼机,它可以工作,但只显示一个元素。
如果我想显示所有卡片并且如果有多余的卡片转到另一页怎么办?
这是我的代码

<androidx.viewpager.widget.ViewPager
    android:id="@+id/pager"
    android:layout_width="wrap_content"
    android:layout_height="130dp"
    android:layout_margin="@dimen/fab_margin"
    android:foregroundGravity="center"
    android:overScrollMode="never"
    android:clipToPadding="true" />

创建

models=new ArrayList<>();
models.add(new ViewPagerModel(R.drawable.icon,""+getString(R.string.app_profile)));
models.add(new ViewPagerModel(R.drawable.ic_school,""+R.string.mainurl));
models.add(new ViewPagerModel(R.drawable.ic_class,""+R.string.eForm));
models.add(new ViewPagerModel(R.drawable.ic_info,""+R.string.about));
models.add(new ViewPagerModel(R.drawable.noaman,""+R.string.about_the_programmer));
adapter=new ViewPagerAdapter(models,getContext());
viewPager=view.findViewById(R.id.pager);
viewPager.setAdapter(adapter);
viewPager.setPadding(8,0,8,0);

查看寻呼机适配器

public class ViewPagerAdapter extends PagerAdapter {
    private List<ViewPagerModel> models;
    private LayoutInflater layoutInflater;
    private Context context;


    public ViewPagerAdapter(List<ViewPagerModel> models, Context context) {
        this.models = models;
        this.context = context;
    }

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

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

    @NonNull
    @Override
    public Object instantiateItem(@NonNull ViewGroup container, int position) {
        layoutInflater=LayoutInflater.from(context);
        View view=layoutInflater.inflate(R.layout.item,container,false);
        ImageView imageView;
        TextView title;
        imageView=view.findViewById(R.id.pagerImage);
        title=view.findViewById(R.id.pagerTitle);
        imageView.setImageResource(models.get(position).getImage());
        title.setText(models.get(position).getTitle());
        container.addView(view,0);
        return view;
    }

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

这是在运行应用程序之后
在此处输入图像描述

这就是我想要的
在此处输入图像描述

标签: javaandroid

解决方案


Evey time 您正在将视图添加到 0 位置

代替container.addView(view,0);

container.addView(view);


推荐阅读