如图,在布局中使用Scrollview,当滑动到顶部的时候会出现白色边框。
2.2系统默认没有那种效果,2.3以上才有的,在2.3之前可以在listview的属性中通过设置Android:fadingEdge="none"来解决问题,程序运行的时候可以判断当前系统是哪个版本,2.3以上可以设置setOverScrollMode(View.OVER_SCROLL_NEVER)方法不显示边框。
在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);
}
if (Integer.parseInt(Build.VERSION.SDK) >= 9) {
ScrollView scrollView = (ScrollView)getActivity().findViewById(R.id.xxx);
scrollView.setOverScrollMode(View.OVER_SCROLL_NEVER);
}
也可以直接重写ScrollView
<span style="color:#333333;">public class MyScrollView extends ScrollView{
public MyScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
if (Integer.parseInt(Build.VERSION.SDK) >= 9) {
this.setOverScrollMode(View.OVER_SCROLL_NEVER);
}
}
}</span>