我开发了一个应用程序,因为我有查看寻呼机来显示不同的视频图像,有 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'
}