所以我的 Activity 正确使用了 PageAdapter 和 ViewPager,其中 3 个图像可以从左向右滚动。然后我在 Activity 上设置了左右箭头,并为两个图像设置了一个 onClickListener,以便使用 ViewPager 寻呼机向左和向右滚动。方法就像
private void setOnClickArrows(final ViewPager pager){
ImageView rightArrow = (ImageView) view.findViewById(R.id.right);
ImageView leftArrow = (ImageView) view.findViewById(R.id.left);
rightArrow.setOnClickListener(new OnClickListener ()
@Override
public void onClick(View v) {
pager.setCurrentItem(pager.getCurrentItem() + 1);
}
});
leftArrow.setOnClickListener(new OnClickListener ()
@Override
public void onClick(View v) {
pager.setCurrentItem(pager.getCurrentItem() - 1);
}
});
}
这非常有效。但是,我想知道 ViewPager 如何检查索引是否越界以及我是否应该这样做?
最佳答案
是的,确实如此。引用source并查看 setCurrentItemInternal
方法(由 setCurrentItem()
调用)。
有一些检查可以避免崩溃,其中之一就是这样,它可以避免 OOBExceptions:
if (item < 0) {
item = 0;
} else if (item >= mAdapter.getCount()) {
item = mAdapter.getCount() - 1;
}
你应该检查一下自己吗?由你决定。我不会,因为这些检查是微不足道的,所以我不希望这些检查消失。
关于android - 使用 setCurrentItem(int index) 时,android PageAdapter 和 ViewPager 是否检查 indexoutofbounds 异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21105535/