由于我是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();
}
});
答案 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;
}