2013-04-15 3 views
2

При попытке прокрутки прокрутки прокрутки Android появляется эффект свечения. Он синий на ICS и выше. Мне нужно сделать его зеленым. Я прочитал много тем и заметил, что нет простого решения изменить этот цвет эффекта свечения, поэтому я решил полностью удалить этот эффект. Это можно сделать, установив overScrollMode = never. Но minSdkVersion должно быть 9 в то время как она у меня 8.Удалить эффект прокрутки/стрелки

ответ

0

Чтобы удалить эффект свечения от Scrollview, я создал свой собственный класс (расширяет Scrollview) е и переопределить два метода:

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

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

мне нужно работать с ViewPager, WebView, ListView и т.д. Там вы также overscroll эффекты горизонтальные. Также я использую pull для обновления библиотеки, поэтому, возможно, есть более простое решение? – Lingviston

+0

О, для этого случая у меня нет никакого рабочего решения :( –

0

Я создал метод Для решения этой проблемы. Это не идеально, но это действительно работает. Вы можете попробовать. Вот мой код:

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; 
     } 
    }); 
} 
Смежные вопросы