我在2.2版本上创建了一个 android 应用程序,想使用 android.support-v4.jar 中的 ViewPager,实现在点击按钮时,禁用 Viewpager swipping。
我使用下面的代码但是没有成功
public class ServiesDeail extends FragmentActivity{
ServiesTitleFragmentAdapter mAdapter;
ViewPager mPager;
int position = 0 ;
@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mastermenu);
LinearLayout lnrparent = (LinearLayout) findViewById(R.id.LL_001);
LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.menu_deatil, null);
lnrparent.addView(view);
mAdapter = new ServiesTitleFragmentAdapter(getSupportFragmentManager());
mPager = (ViewPager) findViewById(R.id.pagerone);
mPager.setAdapter(mAdapter);
TitlePageIndicator indicator = (TitlePageIndicator) findViewById(R.id.indicatorone);
indicator.setViewPager(mPager,position);
Menu_Button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mPager.setClickable(false);
}
});
}
}
如何实现这个功能呢?
继承 view pager, 创建一个可以在 xml 中使用的自定义的 view pager,代替 support library 中的 view pager 再改变一些属性。我用下面的代码实现了。在代码中使用 customviewpager 就会禁用swiping。
public class CustomViewPager extends ViewPager{
public CustomViewPager(Context context){
super(context);
}
public CustomViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev){
return false;
}
@Override
public boolean onTouchEvent(MotionEvent ev){
return false;
}
}