如何设置Android ScrollView的衰落边缘的颜色?
我有一个白色背景的Android滚动视图。 渐变的边缘是一个白色的半透明的渐变。 我想改变它是黑色而不是白色。 我有一个ListView在同一个项目中,默认情况下有一个黑色的衰落边缘的白色背景,但我找不到在哪里设置(如果有的话)。
只是通过试验和错误发现。
只需为<ScrollView>
设置android:background="@color/yourColor"
。 它会将阴影设置为给定的颜色。
如果您需要与背景不同的颜色渐变边缘,则必须重写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);
编辑 :这不回答问题,这是要求ScrollView
。 这个答案只适用于AbsListView
和后代(包括ListView
)。
褪色边缘颜色由android:cacheColorHint
属性控制。
例如:
<ScrollView android:cacheColorHint="#ff000000" android:background="#ffffffff" />
将背景设置为白色,并使用cacheColorHint
绘制渐变边缘颜色 – 在这种情况下,它将是黑色的。
如果你不知道什么改变了你的褪色边缘的颜色,那可能是风格或主题的应用。 在Activity中检查你的清单中的android:theme="something"
。 如果主题是从组android.R.style.Theme.Light
的边缘将是白色的。 默认的android.R.style.Theme
和android.R.style.Theme.Black
会有黑色的衰落边缘。 主题也会影响其他属性,因此在将它们放入其中之前,请完全检查属性。
做这个:
<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>
为我工作!