`
wen742538485
  • 浏览: 228858 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Android支持横行滚动的ListView控件

阅读更多
package com.nmbb;

import android.content.Context;
import android.util.AttributeSet;
import android.view.GestureDetector.OnGestureListener;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.ListView;

/**
* 自定义支持横向滚动的ListView
* @author 农民伯伯
* @version 2011-12-4
*
*/
public class HVListView extends ListView {

/** 手势 */
private GestureDetector mGesture;
/** 列头 */
public LinearLayout mListHead;
/** 偏移坐标 */
private int mOffset = 0;
/** 屏幕宽度 */
private int screenWidth;

/** 构造函数 */
public HVListView(Context context, AttributeSet attrs) {
super(context, attrs);
mGesture = new GestureDetector(context, mOnGesture);
}

/** 分发触摸事件 */
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
super.dispatchTouchEvent(ev);
return mGesture.onTouchEvent(ev);
}

/** 手势 */
private OnGestureListener mOnGesture = new GestureDetector.SimpleOnGestureListener() {

@Override
public boolean onDown(MotionEvent e) {
return true;
}

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
return false;
}

/** 滚动 */
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2,
float distanceX, float distanceY) {
synchronized (HVListView.this) {
int moveX = (int) distanceX;
int curX = mListHead.getScrollX();
int scrollWidth = getWidth();
int dx = moveX;
//控制越界问题
if (curX + moveX  scrollWidth)
dx = scrollWidth - getScreenWidth() - curX;

mOffset += dx;
//根据手势滚动Item视图
for (int i = 0, j = getChildCount(); i
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content"><textview android:id="@+id/item1" android:text="不动列头1" android:textsize="20.0sp" android:gravity="center" android:layout_width="100.0dip" android:layout_height="wrap_content"></textview><linearlayout android:orientation="horizontal" android:id="@+id/head" android:layout_width="1200.0dip" android:layout_height="wrap_content"><textview android:id="@+id/item2" android:text="不动列头2" android:textcolor="@android:color/black" android:textsize="20.0sp" android:singleline="true" android:gravity="center" android:layout_width="150.0dip" android:layout_height="wrap_content"></textview><textview android:id="@+id/item3" android:text="不动列头3" android:textsize="20.0sp" android:singleline="true" android:gravity="center" android:layout_width="150.0dip" android:layout_height="wrap_content"></textview><textview android:id="@+id/item4" android:text="不动列头4" android:textcolor="@android:color/black" android:textsize="20.0sp" android:singleline="true" android:gravity="center" android:layout_width="150.0dip" android:layout_height="wrap_content"></textview><textview android:id="@+id/item5" android:text="不动列头5" android:textsize="20.0sp" android:singleline="true" android:gravity="center" android:layout_width="150.0dip" android:layout_height="wrap_content"></textview><textview android:id="@+id/item6" android:text="不动列头6" android:textcolor="@android:color/black" android:textsize="20.0sp" android:singleline="true" android:gravity="center" android:layout_width="150.0dip" android:layout_height="wrap_content"></textview><textview android:id="@+id/item7" android:text="不动列头7" android:textsize="20.0sp" android:singleline="true" android:gravity="center" android:layout_width="150.0dip" android:layout_height="wrap_content"></textview><textview android:id="@+id/item8" android:text="不动列头8" android:textcolor="@android:color/black" android:textsize="20.0sp" android:singleline="true" android:gravity="center" android:layout_width="150.0dip" android:layout_height="wrap_content"></textview><textview android:id="@+id/item9" android:text="不动列头9" android:textsize="20.0sp" android:singleline="true" android:gravity="center" android:layout_width="150.0dip" android:layout_height="wrap_content"></textview></linearlayout></linearlayout>

main.xml
<?xml version="1.0" encoding="utf-8"?><linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:background="#eeffcc" android:layout_width="wrap_content" android:layout_height="fill_parent"><include layout="@layout/item"></include><com.nmbb.hvlistview android:id="@android:id/list" android:background="#FFB84D" android:fastscrollenabled="true" android:fadingedgelength="0.0sp" android:layout_width="1400.0dip" android:layout_height="fill_parent" android:drawselectorontop="false" android:cachecolorhint="@null" android:dividerheight="1.0dip"></com.nmbb.hvlistview></linearlayout>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics