如何在卡片触摸项目结束时停止Viewpager?

问题描述 投票:0回答:1

今天我研究了Viewpager,因为我是android的新手。

但我想让一个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();


        }
    });
android android-viewpager android-pageradapter
1个回答
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;
}
© www.soinside.com 2019 - 2024. All rights reserved.