android 横向滑动分类效果实现

简介: android 横向滑动分类效果实现

image.png

大家看上面的分类栏,我们这个分类数目不固定,要求可以一个一个横向滑动。不是viewPager分页 一屏幕放4个,一滑动一下子显示下一页的4个。当然这种效果一般都是用viewPager实现。实现方法我晚点会写一篇文章链接到这里。


这个横向的列表之前的博客已经写过了用的HorizontalListView,所以这个横向滑动列表的实现 我就不再写一次了 ,感兴趣的可以直接看这篇文章


Android 横向ListView实现

但是用这个实现了列表后,发现这个效果对用户来讲不是特别友好,因为可能一部分用户不知道那个列表是滑动的,所以特意在下面加了两个小圆点

这两个小圆点的添加方式就是监听 横向列表的onTouch事件

  mDocumentCategoryHlv.setOnTouchListener(this);

然后在onTouch事件里面增加判断

让当前类继承 View.OnTouchListener, GestureDetector.OnGestureListener

    private GestureDetector gd = new GestureDetector(this);
    private int FLING_MIN_DISTANCE = 200;// 水平方向手指滑动距离最小值
    private int FLING_MIN_VELOCITY = 0;// 垂直方向手指滑动距离最小值
  @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
        if (e1.getX() - e2.getX() > FLING_MIN_DISTANCE && Math.abs(velocityX) > FLING_MIN_VELOCITY) {
            //            SingleToast.show(getContext(), "向左手势");
            setTip(2);
        } else if (e2.getX() - e1.getX() > FLING_MIN_DISTANCE && Math.abs(velocityX) > FLING_MIN_VELOCITY) {
            //            SingleToast.show(getContext(), "向右手势");
            setTip(1);
        }
        return false;
    }
    @Override
    public boolean onTouch(View view, MotionEvent motionEvent) {
        return gd.onTouchEvent(motionEvent);
    }

判断滑动状态,给小圆点设置不同图片就实现了上图的效果

  private void setTip(int flag) {
        if (flag == 1) {
            mTipLeftIv.setImageResource(R.drawable.tip_yes);
            mTipRightIv.setImageResource(R.drawable.tip_no);
        } else if (flag == 2) {
            mTipLeftIv.setImageResource(R.drawable.tip_no);
            mTipRightIv.setImageResource(R.drawable.tip_yes);
        }
    }


相关文章
|
JavaScript Android开发
使用贝叶斯曲线滑动安卓屏幕(autojsPro7)
使用贝叶斯曲线滑动安卓屏幕(autojsPro7)
650 0
|
11月前
|
Java Android开发
Android背景颜色滑动渐变效果(上下滑动,左右滑动)
本文分享了一种通过ScrollView实现滑动变色效果的简单方法。主要步骤包括:1) 在布局中添加ScrollView并确保内容可滑动;2) 获取屏幕高度;3) 获取控件高度;4) 使用GradientDrawable设置渐变颜色;5) 根据控件与屏幕高度比例动态调整颜色数量。示例代码展示了如何在滑动时根据比例改变背景颜色,实现流畅的视觉效果。
312 0
|
移动开发 Android开发
h5滑动底部兼容安卓
h5滑动底部兼容安卓
228 0
|
Android开发
Android使用ViewPager做无限轮播,人为滑动时停止
Android使用ViewPager做无限轮播,人为滑动时停止
299 2
|
Android开发
Android使用ViewPager实现图片轮播系列之三:手动滑动 + 左右箭头(1)
Android使用ViewPager实现图片轮播系列之三:手动滑动 + 左右箭头(1)
|
Android开发
Android仿高德首页三段式滑动
Android仿高德首页三段式滑动
498 0
|
编解码 Android开发
Android 解决TextView多行滑动与NestedScrollView嵌套滑动冲突的问题
Android 解决TextView多行滑动与NestedScrollView嵌套滑动冲突的问题
562 0
|
XML Android开发 UED
|
XML Java Android开发
Android 仿抖音直播滑动清屏,完美解决滑动冲突
Android 仿抖音直播滑动清屏,完美解决滑动冲突
|
Android开发 Kotlin 索引
Android Compose——ScrollableTabRow和LazyColumn同步滑动
Android Compose——ScrollableTabRow和LazyColumn同步滑动
780 0
下一篇
开通oss服务