【问题标题】:Remove scrolling glow effect/arrows移除滚动发光效果/箭头
【发布时间】:2013-04-15 07:53:14
【问题描述】:

当您尝试过度滚动 android 滚动视图时,会出现发光效果。 ICS 及以上为蓝色。我需要把它变成绿色。我已经阅读了很多主题,并注意到没有简单的解决方案来更改这种发光效果颜色,所以我决定完全删除这种效果。这可以通过设置 overScrollMode=never 来完成。但是 minSdkVersion 必须是 9 而我有 8。

【问题讨论】:

    标签: android listview scroll


    【解决方案1】:

    为了从滚动视图中移除发光效果,我创建了我的自定义类(扩展了滚动视图)f 并覆盖了两个方法:

    @Override
    protected float getTopFadingEdgeStrength() {
        return 0.0f;
    }
    
    @Override
    protected float getBottomFadingEdgeStrength() {
        return 0.0f;
    }
    

    【讨论】:

    • 我需要它与 ViewPager、WebView、ListView 等一起使用。还有水平过度滚动效果。另外我正在使用 pull 来刷新库,所以也许有更简单的解决方案?
    【解决方案2】:

    我创建了一个方法来解决这个问题。它并不完美,但它确实有效。你可以试一试。 这是我的代码:

    private void removeViewPagerGlowEffect(final ViewPager viewpager, final Context context) {
        viewpager.setOnTouchListener(new OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                viewpager.onTouchEvent(event);
                try {
                    Field leftEdge = viewpager.getClass().getDeclaredField("mLeftEdge");
                    leftEdge.setAccessible(true);
                    EdgeEffectCompat effectObject = new EdgeEffectCompat(context);
                    effectObject.setSize(0, 0);
                    leftEdge.set(viewpager, effectObject);
    
                    Field rightEdge = viewpager.getClass().getDeclaredField("mRightEdge");
                    rightEdge.setAccessible(true);
                    leftEdge.set(viewpager, effectObject);
                    rightEdge.set(viewpager, effectObject);
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return false;
            }
        });
    }
    

    【讨论】:

      猜你喜欢
      • 2015-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-09
      • 1970-01-01
      • 2013-02-05
      相关资源
      最近更新 更多