前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >android 横向滑动分类效果实现

android 横向滑动分类效果实现

作者头像
再见孙悟空_
发布2023-02-10 20:06:36
1.1K0
发布2023-02-10 20:06:36
举报

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

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

Android 横向ListView实现 

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

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

代码语言:javascript
复制
  mDocumentCategoryHlv.setOnTouchListener(this);

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

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

代码语言:javascript
复制
    private GestureDetector gd = new GestureDetector(this);
    private int FLING_MIN_DISTANCE = 200;// 水平方向手指滑动距离最小值
    private int FLING_MIN_VELOCITY = 0;// 垂直方向手指滑动距离最小值
代码语言:javascript
复制
  @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);
    }

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

代码语言:javascript
复制
  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);
        }
    }

大概意思就是这样,希望可以帮助到大家

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-03-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Android 横向ListView实现 
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档