android gridview 滚动条,android GridView禁止上下滑动以及禁止滚动条显示的方法。

一、 android处理鼠标滚轮事件,并不是如下的函数:

1) public boolean onKeyDown(int keyCode, KeyEvent event)

2) public boolean dispatchKeyEvent(KeyEvent event)

3) public boolean onTouchEvent(MotionEvent event)

而是如下的函数

publicboolean onGenericMotionEvent(MotionEvent event);

所有View和Activity都可重写该函数,来自己处理滚轮事件。

网上很多人说用重写dispatchTouchEvent和onTouchEvent方法可以实现禁止滚动的功能,我测试了下,都是不行的,只有重写onGenericMotionEvent方法可以。

具体代码如下:

import android.annotation.SuppressLint;

import android.content.Context;

import android.util.Log;

import android.view.MotionEvent;

import android.widget.GridView;

public class MyGridView extends GridView {

private static final String TAG = "FreeRDP.SessionActivity";

public MyGridView(Context context) {

super(context);

// TODO Auto-generated constructor stub

}

// 通过重新dispatchTouchEvent方法来禁止滑动

@Override

public boolean dispatchTouchEvent(MotionEvent ev) {

// TODO Auto-generated method stub

Log.v(TAG, "dispatchTouchEvent....4444444444........." + ev.getAction());

if (ev.getAction() == MotionEvent.ACTION_MOVE) {

return true;// 禁止Gridview进行滑动

}

return super.dispatchTouchEvent(ev);

}

@Override

public boolean onTouchEvent(MotionEvent event) {

// 重写的onTouchEvent回调方法

Log.v(TAG, "dispatchTouchEvent...5555........" + event.getAction());

switch (event.getAction()) {

// 按下

case MotionEvent.ACTION_DOWN:

return super.onTouchEvent(event);

// 滑动

case MotionEvent.ACTION_MOVE:

break;

// 离开

case MotionEvent.ACTION_UP:

return super.onTouchEvent(event);

}

// 注意:返回值是false

return false;

}

@SuppressLint({ "NewApi", "NewApi" })

@Override

public boolean onGenericMotionEvent(MotionEvent event) {

// 重写的onTouchEvent回调方法

switch (event.getAction()) {

// 按下

case MotionEvent.ACTION_DOWN:

return super.onGenericMotionEvent(event);

// 滑动

case MotionEvent.ACTION_MOVE:

break;

// 离开

case MotionEvent.ACTION_UP:

return super.onGenericMotionEvent(event);

}

// 注意:返回值是false

return false;

}

}

二、 禁止滚动条显示

有二种方法禁止滚动条显示:

1、xml添加android:scrollbars="none"属性。

2、代码实现:gridView.setVerticalScrollBarEnabled(false);

你可能感兴趣的:(android,gridview,滚动条)