触摸或点击事件ViewPagerIndicator Android中 [英] Touch or Click event ViewPagerIndicator in Android

查看:249
本文介绍了触摸或点击事件ViewPagerIndicator Android中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

可能是重复的:

  1. <一个href="http://stackoverflow.com/questions/17370729/intercepting-touch-events-in-viewpagerindicator">Intercepting在ViewPagerIndicator触摸事件
  2. <一个href="http://stackoverflow.com/questions/8134336/disabling-enabling-paging-in-viewpager-in-android">Disabling &放大器;使分页ViewPager在Android的
  3. <一个href="http://stackoverflow.com/questions/6920137/android-viewpager-and-horizontalscrollview">android: ViewPager和Horizo​​ntalScrollVIew
  1. Intercepting touch events in ViewPagerIndicator
  2. Disabling & Enabling Paging In ViewPager in Android
  3. android: ViewPager and HorizontalScrollVIew

我使用 ViewPagerIndicator 在我的Andr​​oid应用程序的刷卡来看动态数量和它的工作的罚款。

I am using ViewPagerIndicator in my android app for swiping dynamic number of view and its working fine.

什么是希望?:当用户在幻灯片上其对应的视图将打开的点击。但我无法覆盖触摸事件上的寻呼机

What is want? When user click on one of the slide its corresponding view will open. But i am unable to override touch event on Pager.

活动code是:

public class MainActivity extends BaseSampleActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mAdapter = new TestFragmentAdapter(getSupportFragmentManager());

        mPager = (ViewPager)findViewById(R.id.pager);
        mPager.setAdapter(mAdapter);

        mPager.setOnTouchListener(new View.OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                // TODO Auto-generated method stub
                System.out.print(event.getAction());//not working

                return false;
            }
        });

        mIndicator = (CirclePageIndicator)findViewById(R.id.indicator);
        mIndicator.setViewPager(mPager);
    }
}

我寻觅了很多,但没有找到妥善的解决办法。 但没有得到适当的和简单的答案

I have searched a lot but didn't found proper solution. But haven't got proper and brief answer

推荐答案

我也有同样的问题。首先,我创建了一个 CustomViewPager ,它扩展了 ViewPager

I also had a same issue. First I created a CustomViewPager, which extends ViewPager:

和覆盖 onTouch onInterceptTouch 事件:

    public class CustomViewPager extends ViewPager {


        public CustomViewPager(Context context, AttributeSet attrs) {
            super(context, attrs);
        }   

        @Override
        public boolean onInterceptTouchEvent(MotionEvent event) {

            return super.onInterceptTouchEvent(event);
        }

        @Override
        public boolean onTouchEvent(MotionEvent event){
            return super.onTountEvent(event);
        }

    }

你的XML应该是:

Your xml should be:

    <android.support.v4.view.ViewPager
            android:id="@+id/pager"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="7" />

将其更改为

    <com.yourpackage.CustomViewPager
            android:id="@+id/pager"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="7" />

有关click事件使用 GestureDetector 。发送 MotionEvent 的tapGestureDetector。

For click event use GestureDetector. Sending MotionEvent to the tapGestureDetector.

tapGestureDetector = new GestureDetector(this, new TapGestureListener());

    viewPager.setOnTouchListener(new OnTouchListener() {
            public boolean onTouch(View v, MotionEvent event) {
                tapGestureDetector.onTouchEvent(event);
                return false;
            }
    });

据您正在使用兼容性库,就可以在第一行更改为:

It you are using the compatibility library, you can change the first line to:

tapGestureDetector = new GestureDetectorCompat(this, new TapGestureListener());

您可以处理在GestureListener的事件:

You can handle your Event in the GestureListener:

class TapGestureListener extends GestureDetector.SimpleOnGestureListener{

     @Override
     public boolean onSingleTapConfirmed(MotionEvent e) {
       // Your Code here
     }
}

这篇关于触摸或点击事件ViewPagerIndicator Android中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆