Android,触摸时停止自动滑入

标签 android android-viewpager

我开发了一个应用程序,因为我有查看寻呼机来显示不同的视频图像,有 n 个寻呼机屏幕,

所有页面都是自动滑动的,如下所示。

 public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    ViewGroup v=(ViewGroup)inflater.inflate(R.layout.fragment_home, container, false);

    ButterKnife.bind(this, v);



    /*Snackbar.make(v, "Home Fragment", Snackbar.LENGTH_LONG)
            .setAction("Action", null).show();*/
    //Toast.makeText(getActivity(),"home Fragment",Toast.LENGTH_LONG).show();
    viewPager.setAdapter(new MyPagerAdapter());

    t=new Thread(){
        @Override
        public void run()
        {

            try {
                while(true) {
                    count %= size;
                    Log.w("slide", "" + count);
                    getActivity().runOnUiThread(new Runnable() {

                        @Override
                        public void run() {
                            viewPager.setCurrentItem(count);
                        }
                    });

                    count++;
                    Thread.currentThread().sleep(5000);
                }

            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    };
    //t.start();

    return v;
}

我想在触摸这个特定的寻呼机时停止自动滑动寻呼机,当我从寻呼机上移开手指然后寻呼机的自动滑动开始并再次触摸时停止,如何实现此功能?

最佳答案

我通过使用 https://github.com/Trinea/android-auto-scroll-view-pager 来实现我的功能

我使用了以下自定义 viewpager

<cn.trinea.android.view.autoscrollviewpager.AutoScrollViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

并设置自动滑动的特定时间间隔

setInterval(long)

然后使用:startAutoScroll()方法实现自动滑动

和:topAutoScroll() 用于在触摸时停止动画,如下所示,

     layout.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {

                switch(event.getAction())
                {
                    case MotionEvent.ACTION_DOWN:
                        Log.w("touched","down");
                        stopScroll();
                        return true;
                        //break;

                    case MotionEvent.ACTION_UP:
                        Log.w("touched","up");
                        startScroll();
                        return true;
                        //break;
                }

                return false;
            }
        });

并使用以下 gradle :

compile ('cn.trinea.android.view.autoscrollviewpager:android-auto-scroll-view-pager:1.1.2') 
{
   exclude module: 'support-v4'
}

关于Android,触摸时停止自动滑入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34585179/

相关文章:

java - 为什么我的 CardView 不会出现在我的 fragment 中?

android - 如何通知 ViewPager 中的所有 fragment 其中一个 fragment 发生了变化?

java - 无法使用 AsyncTask 生成 url 图像

android - 当我从一个选项卡单击到另一个选项卡时,如何使选项卡在 TabLayout 中不可滚动

javascript - 应用程序加载前启动屏幕后显示的白页(cordova-Android)

android - 展开包含 EditText 的工具栏

android - 如果再次单击当前选项卡是否重新加载 fragment ?

没有根点的android崩溃异常

android - 在 Android 中支持针对相应 API 级别的相同 View 的不同外观

android - 无法解析 Firebase Storage getDownloadUrl() 方法