2011-06-14 7 views
3

В Google Nexus S, когда вы пытаетесь перетащить конец списка ListView, появляется желтый градиент, а его размер определяется пройденным расстоянием. Как изменить цвет этого градиента? Я не вижу ничего очевидного.изменить цвет градиента в конце списка ListView

Это не cacheColorHint.

ответ

2

Он, по-видимому, жестко закодирован в реализации ScrollView. Посмотрите на this, то setOverScrollMode() метод на линии 1389 (точный номер строки может измениться, если кто-то обновляет источник):

@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); 
} 

Единственный способ, который я могу видеть, чтобы определить свою собственную реализацию Scrollview, переопределить setOverScrollMode() использовать свои собственные чертежи, а затем внедрить свой собственный ListView, который будет использовать вашу реализацию ScrollView вместо стандартной.

+0

Что такое EdgeGlow? Где я могу найти этот класс? –

Смежные вопросы