私はAndroid背景が白いスクロールビューです。フェージングエッジは白い半透明のグラデーションです。白ではなく黒に変更したいと思います。デフォルトでは黒のフェージングエッジを持つ白い背景ですが、どこに設定されているかはわかりません。
試行錯誤で見つけました。
単にAndroid:background="@color/yourColor"
のために <ScrollView>
。影を指定された色に設定します。
背景とは異なる色のフェードエッジが必要な場合は、ScrollViewのgetSolidColor()メソッドをオーバーライドする必要があります。例えば:
@Override
public int getSolidColor() {
return Color.rgb(0x30, 0x30, 0x30);
}
次を使用できます。
final int glowDrawableId = context.getResources().getIdentifier("overscroll_glow",
"drawable", "Android");
final Drawable androidGlow = context.getResources().getDrawable(glowDrawableId);
androidGlow.setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);
int edgeDrawableId = context.getResources().getIdentifier("overscroll_Edge", "drawable",
"Android");
final Drawable androidEdge = context.getResources().getDrawable(edgeDrawableId);
androidEdge.setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);
[〜#〜] edit [〜#〜]:これは、ScrollView
を要求していた質問に答えません。この回答は、AbsListView
およびその子孫(ListView
を含む)でのみ機能します。
フェージングエッジの色は、Android:cacheColorHint
属性。
例えば。:
<ScrollView Android:cacheColorHint="#ff000000" Android:background="#ffffffff" />
背景を白に設定し、cacheColorHint
を使用して、フェージングエッジカラーを描画します。この場合、黒になります。
フェージングエッジの色が何によって変わったのかわからない場合は、おそらくスタイルまたはテーマのアプリケーションでした。アクティビティのAndroid:theme="something"
のマニフェストを確認してください。テーマがグループAndroid.R.style.Theme.Light
からのものである場合、エッジは白になります。デフォルトのAndroid.R.style.Theme
およびAndroid.R.style.Theme.Black
のエッジは黒くなります。テーマは他の属性にも影響を与えるため、1つの目的のために属性をスローする前に、属性を完全にチェックアウトしてください。
これを行う:
<ScrollView
Android:theme="@style/scrollUpdate"
Android:layout_width="match_parent"
Android:layout_height="0dp"
Android:layout_weight="1" >
値\スタイルにスタイルを入れます
<style name="scrollUpdate">
<item name="colorAccent">@color/yourcolor</item>
<item name="Android:color">@color/yourcolor</item>
<item name="colorPrimary">@color/yourcolor</item>
<item name="colorPrimaryDark">@color/yourcolor</item>
</style>
tksで動作します!