zoukankan      html  css  js  c++  java
  • 禁用滚动视图ListView、ViewPager、ScrollView、HorizontalScrollView、WebView边界颜色渐变

    禁用滚动视图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);

    }

    在低版本上面没有这个方法,就是这个mEdgeGlowTopmEdgeGlowBottom这两个货导致的边界渐变颜色。解决方法如下:你可以在自定义的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

  • 相关阅读:
    grep用法小结
    观察者模式
    类之间的关系
    Linux——makefile编写
    探索C++多态和实现机理
    进程间通信——管道
    C++继承引入的隐藏与重写
    Linux 文件读写操作与磁盘挂载
    xShell终端下中文乱码问题
    深入理解C++ new/delete, new []/delete[]动态内存管理
  • 原文地址:https://www.cnblogs.com/xinye/p/3205772.html
Copyright © 2011-2022 走看看