禁用滚动视图ListView、ViewPager、ScrollView、HorizontalScrollView、WebView边界颜色渐变
ListView、ViewPager、ScrollView、HorizontalScrollView、WebView等滚动试图控件在高版本(一般是2.3及以上版本)上边界会显示一个渐变的颜色,下面是去掉这些颜色的方法:
1、ListView的父类AbsListView.java中有以下的一个方法:
@Override
public void setOverScrollMode(int mode) {
if (mode != OVER_SCROLL_NEVER) {
if (mEdgeGlowTop == null) {
Context context = getContext();
mEdgeGlowTop = new EdgeEffect(context);
mEdgeGlowBottom = new EdgeEffect(context);
}
} else {
mEdgeGlowTop = null;
mEdgeGlowBottom = null;
}
super.setOverScrollMode(mode);
}
在低版本上面没有这个方法,就是这个mEdgeGlowTop、mEdgeGlowBottom这两个货导致的边界渐变颜色。解决方法如下:你可以在自定义的ListView中调用,也可以在Activity或者Fragment的ListView属性调用:
try { Method method = getClass().getMethod("setOverScrollMode", int.class); Field field = getClass().getField("OVER_SCROLL_NEVER"); if(method != null && field != null){ method.invoke(this, field.getInt(View.class)); } } catch (Exception e) { e.printStackTrace(); } |
2、ScrollView、HorizontalScroll以及WebView的情况和ListView相同,处理方法也一样。
3、ViewPager有些特殊,需要特殊处理,请参考我的这篇博客:http://www.cnblogs.com/xinye/p/3142704.html