如何在Android中使用android-support-v4.jar禁用ViewPager滑动

6

我正在创建一个目标为2.2的android应用程序。我仍然想使用android.support-v4.jar中提供的ViewPager。我希望在按钮点击时禁用ViewPager的滑动。我已经使用了以下代码来禁用,但它不起作用。

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);
            }
        });
      }
}

如果你有任何想法,请回复我。我在等待你的回复。

1个回答

24

你需要扩展视图页并创建一个自定义视图页,它可以在xml中使用,而不是从支持库中获取的视图页,并更改一些属性,看下面的代码,这对我有用。在你的代码中使用customviewpager,滑动将被禁用。

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;
    }
}

谢谢您的回复。不可能做到这一点,因为我在使用片段视图时有多个布局。所以我必须使用这种方法,但无法在片段上使用多个任务。@yashwanth - Akash Singh
我无法理解你的评论,请在类中声明一个变量以检查是否需要禁用滑动,并从使用ViewPager的活动中进行控制。 - Yashwanth Kumar
我已经在我的类中扩展了FragmentActivity..那么如何扩展另一个类Viewpager..这是个问题吗?@yashwanth kumar - Akash Singh
我看到你在xml中声明了viewPager,所以不要使用viewPager,而是使用我在xml中提到的自定义类,例如<com.packagename.CustomViewPager/>而不是<support.v4.viewPager/>。我没有要求你为活动扩展viewPager。我会稍微修改我的回答。 - Yashwanth Kumar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接