卡碰到项目末尾时如何停止Viewpager?

时间:2019-03-17 16:48:31

标签: android android-viewpager android-pageradapter

由于我是android的新手,所以今天我研究了Viewpager。

但是我想让viewpager在卡片的最后一项停止时显示。

我试图搜索所需的方法。但是我找不到。

我发现的一种方法是getcount方法更改xxx.size()-1。 但这对我没有用.. 所以..如果有人知道我想要的方式,请让我知道如何更改代码。

这是代码。

public class AutoScrollAdapter extends PagerAdapter {

Context mContext;
ArrayList<Integer>data;





public AutoScrollAdapter(Context mContext, ArrayList<Integer> data) {
    this.mContext = mContext;
    this.data = data;

}

@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
    LayoutInflater inflater = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View v = inflater.inflate(R.layout.auto_viewpager,null);

    ImageView image_container =(ImageView)v.findViewById(R.id.image_container);


    Glide.with(mContext).load(data.get(position)).into(image_container);


    container.addView(v);
    return  v;
}

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

@Override
public int getCount() {
    return data.size()-1;
}

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


}


public class MainActivity extends AppCompatActivity {

AutoScrollViewPager autoViewPager;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ImageButton btn = findViewById(R.id.btn_yoga1);
    ImageButton btn1 = findViewById(R.id.btn_yoga2);


    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            ArrayList<Integer> data = new ArrayList<>();

            data.add(R.drawable.a1);
            data.add(R.drawable.a2);
            data.add(R.drawable.a3);
            data.add(R.drawable.a4);
            data.add(R.drawable.a5);
            data.add(R.drawable.a6);
            data.add(R.drawable.a7);
            data.add(R.drawable.a8);
            data.add(R.drawable.a9);
            data.add(R.drawable.a10);
            data.add(R.drawable.a11);
            autoViewPager = (AutoScrollViewPager) findViewById(R.id.autoViewPager);
            AutoScrollAdapter scrollAdapter = new AutoScrollAdapter(MainActivity.this, data);
            autoViewPager.setAdapter(scrollAdapter);
            autoViewPager.setInterval(5000);
            autoViewPager.startAutoScroll();


        }
    });

1 个答案:

答案 0 :(得分:0)

我找到了方法。...

AutoScrollViewPager类中有一个方法。

/**
 * set whether automatic cycle when auto scroll reaching the last or first item, default is true
 * 
 * @param isCycle the isCycle to set
 */
public void setCycle(boolean isCycle) {
    this.isCycle = isCycle;
}