如果你的程序针对的是2.3及以上版本,可以直接调用AbsListView的setOverScrollMode方法来解决这个问题。 如果还要兼容2.1,2.2的话,可以通过反射来操作。 参数总共有三个值: public static final int OVER_SCROLL_ALWAYS = 0; public static final int OVER_SCROLL_IF_CONTENT_SCROLLS = 1; public static final int OVER_SCROLL_NEVER = 2;设置为OVER_SCROLL_NEVER即可。当然如果厂商的ROM忽略了这个属性,那就真的没有办法了~
如果还要兼容2.1,2.2的话,可以通过反射来操作。
参数总共有三个值:
public static final int OVER_SCROLL_ALWAYS = 0;
public static final int OVER_SCROLL_IF_CONTENT_SCROLLS = 1;
public static final int OVER_SCROLL_NEVER = 2;设置为OVER_SCROLL_NEVER即可。当然如果厂商的ROM忽略了这个属性,那就真的没有办法了~
添加代码:setOverScrollMode(View.OVER_SCROLL_NEVER)看看有效果吗?
请参考:
http://developer.android.com/reference/android/widget/AbsListView.html#setOverScrollMode(int)
http://developer.android.com/reference/android/view/View.html#OVER_SCROLL_NEVER
反射是指Java的反射机制,通过class的getMethod方法去操作,比如:
Method method = AbsListView.class.getMethod("setOverScrollMode",int.class);
再调用method的invoke就可以了。反射相关的知识可以参考这里:http://tianna55555.iteye.com/blog/1662972
public static void disableScrollMode(View view) {
try {
Method method = AbsListView.class.getMethod("setOverScrollMode", int.class);
@SuppressWarnings("rawtypes")
Class viewCls = view.getClass();
int OVER_SCROLL_NEVER = (Integer) viewCls.getField("OVER_SCROLL_NEVER").get(view);
method.invoke(view, OVER_SCROLL_NEVER);
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}