2011-06-14 8 views
3

Google Nexus Sでは、ListViewの末尾を超えてドラッグしようとすると、黄色のグラデーションが表示され、そのサイズはドラッグされた距離によって決まります。このグラデーションの色はどのように変更されますか?私は明らかな何かを見ることができません。ListViewの最後に勾配の色を変更します

それは、ない cacheColorHintです。

答えて

2

ScrollViewの実装ではハードコードされているようです。 thisを見て、ライン1389上のsetOverScrollMode()方法は、(誰かがソースを更新した場合、正確な行数が変更される可能性):私は見ることができます

@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()を上書き独自のドロアブルを使用して、標準のものではなくScrollViewの実装を使用するListViewを暗示します。

+0

EdgeGlowとは何ですか?このクラスはどこにありますか? –

関連する問題