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

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

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

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

在AbsListView中,有这么一段:

    @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中滚动拖动到顶部或者底部时的阴影完美解决。


法二:

在xml文件里listView控件上加上下面的属性:
android:overScrollMode="never"


写得不怎么样,大家共同学习,一起探讨。本帖地址:http://blog.csdn.net/nanlus/article/details/8170618

posted on 2014-09-27 10:04  小尾巴猴子  阅读(1090)  评论(0编辑  收藏  举报

导航