android listview 横向滚动,Android支持水平滚动的ListView控件

前言ListView是一个纵向滚动的列表视图,也有朋友嵌套HorizontalScrollView来实现,比如这里,但在ListView的API中明确指明了两者不可同时使用。本文分享一种办法,以方便有此需求的朋友。正文一、本文目标效果图:a).  支持ListView横行滚动b).  支持固定第一列二、 实现代码2.1  Java类自定义控件HVListView/*** 自定义支持横向滚动的Lis...
摘要由CSDN通过智能技术生成

前言

ListView是一个纵向滚动的列表视图,也有朋友嵌套HorizontalScrollView来实现,比如这里,但在ListView的API中明确指明了两者不可同时使用。本文分享一种办法,以方便有此需求的朋友。

正文

一、本文目标

效果图:

f3649b22dcb98785ccb0e1a55126a604.gif

a).  支持ListView横行滚动

b).  支持固定第一列

二、 实现代码

2.1  Java类

自定义控件HVListView

/**

* 自定义支持横向滚动的ListView

* @author 农民伯伯

*

*/

publicclass HVListView extends ListView {

/** 手势 */

private GestureDetector mGesture;

/** 列头 */

public LinearLayout mListHead;

/** 偏移坐标 */

privateint mOffset = 0;

/** 屏幕宽度 */

privateint screenWidth;

/** 构造函数 */

public HVListView(Context context, AttributeSet attrs) {

super(context, attrs);

mGesture = new GestureDetector(context, mOnGesture);

}

/** 分发触摸事件 */

@Override

publicboolean dispatchTouchEvent(MotionEvent ev) {

super.dispatchTouchEvent(ev);

return mGesture.onTouchEvent(ev);

}

/** 手势 */

private OnGestureListener mOnGesture = new GestureDetector.SimpleOnGestureListener() {

@Override

publicboolean onDown(MotionEvent e) {

returntrue;

}

@Override

publicboolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,

float velocityY) {

returnfalse;

}

/** 滚动 */

@Override

publicboolean onScroll(MotionEvent e1, MotionEvent e2,

float distanceX, float distanceY) {

synchronized (

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值