关于ListView顶部和底部滚(拖)动出现渐变阴影解决方案

在listview中滑动到顶部或者是底部的时候,在默认的情况下,是会有黄色或者黑色的阴影出现。

这个该怎么解决呢,请往下看:

在不同的版本上解决的方法是不同的,在2.3之前可以在listview的属性中通过设置android:fadingEdge="none"来解决问题,但是在2.3及以上这个是不行的,这里,可以通过代码来设置模式,禁止其阴影的出现,以免影响美观。请看代码:

在AbsListView(ListView的父类)中,有这么一段:

@Override
 
public void setOverScrollMode(int mode) {
 
    if (mode != OVER_SCROLL_NEVER) {
 
        if (mEdgeGlowTop == null) {
 
            final Resources res = getContext().getResources();
 
            final Drawable edge = res.getDrawable(R.drawable.overscroll_edge);
 
            final Drawable glow = res.getDrawable(R.drawable.overscroll_glow);
 
            mEdgeGlowTop = new EdgeGlow(edge, glow);
 
            mEdgeGlowBottom = new EdgeGlow(edge, glow);
 
        }
 
    } else {
 
        mEdgeGlowTop = null;
 
        mEdgeGlowBottom = null;
 
    }
 
    super.setOverScrollMode(mode);
 
}

所以,我们可以这样解决:

public class MyListView extends ListView {
  
    public MyListView(Context context, AttributeSet attrs) {
        super(context, attrs);
        if (Integer.parseInt(Build.VERSION.SDK) >= 9) {
            this.setOverScrollMode(View.OVER_SCROLL_NEVER);
        }
    }
}

由此,listview中滚动拖动到顶部或者底部时的阴影完美解决。

写得不怎么样,大家共同学习,一起探讨。