今天我研究了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();
}
});
我找到了路......
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;
}