Android ListView拖(滚)动到顶部或底部时出现阴影的解决方案

来源:互联网 发布:随机森林算法matlab 编辑:程序博客网 时间:2024/04/30 14:24
在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);            }        }    }

直接设置上面红色那句就ok了.

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

转载:http://blog.csdn.net/nanlus/article/details/8170618

0 0