android设置页面代码,android – ViewPager以编程方式设置当前页面

我写了一个自定义ViewPager来禁用Swipe Scroll,但我想以编程方式滑动.我的视图分页器中有三个Tab,但是当我在第一个片段上调用viewPager.setCurrentItem(viewPager.getCurrentItem()1)时,它会移动到第三个片段而不是第二个片段.如果我在第二个片段中调用相同的函数,它将转到第三个片段.如果我在第三个片段中调用(viewPager.getCurrentItem() – 1)`,它可以通过向后移动来正常工作.任何帮助,将不胜感激.我的代码如下:

NonSwipeAbleViewPager

public class NonSwipeableViewPager extends ViewPager {

private boolean swipeable;

public NonSwipeableViewPager(Context context, AttributeSet attrs) {

super(context, attrs);

TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.MyViewPager);

try {

swipeable = a.getBoolean(R.styleable.MyViewPager_swipeable, true);

} finally {

a.recycle();

}

}

@Override

public boolean onInterceptTouchEvent(MotionEvent event) {

return swipeable ? super.onInterceptTouchEvent(event) : false;

}

@Override

public boolean onTouchEvent(MotionEvent event) {

return swipeable ? super.onTouchEvent(event) : false;

}

}

XML声明

android:id="@+id/pager"

android:layout_width="match_parent"

android:layout_height="0dp"

android:layout_weight="1"

app:swipeable="false" />

打电话给它

@Override

public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case R.id.menuNext:

NonSwipeableViewPager pages = (NonSwipeableViewPager) getActivity().findViewById(R.id.pager);

pages.setCurrentItem(pages.getCurrentItem()+1, true);

break;

default:

return super.onOptionsItemSelected(item);

}

return super.onOptionsItemSelected(item);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值