我有一个白色背景的Android滚动视图,渐隐边缘是白色半透明渐变色。我想将其改为黑色而不是白色。在同一个项目中,我有一个具有白色背景和默认黑色渐隐边缘的ListView,但我找不到设置它的地方(如果有的话)。
我有一个白色背景的Android滚动视图,渐隐边缘是白色半透明渐变色。我想将其改为黑色而不是白色。在同一个项目中,我有一个具有白色背景和默认黑色渐隐边缘的ListView,但我找不到设置它的地方(如果有的话)。
如果您想要一种不同于背景色的淡出边缘颜色,您需要覆盖ScrollView的getSolidColor()方法。例如:
@Override
public int getSolidColor() {
return Color.rgb(0x30, 0x30, 0x30);
}
我通过试错发现了这个方法。
只需为<ScrollView>
设置android:background="@color/你的颜色"
。它会将阴影设置为给定颜色。
您可以使用:
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
用于绘制淡出边缘的颜色——在这种情况下,它将是黑色。
请执行以下操作:
<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>
android:theme="something"
是否存在。如果所使用的主题属于 android.R.style.Theme.Light
组,则渐变边缘将为白色。默认的 android.R.style.Theme
和 android.R.style.Theme.Black
则会有黑色的渐变边缘。主题还会影响其他属性,因此在应用它们之前请彻底检查这些属性。<!-- 变体为没有标题栏的默认(深色)主题 -->
因此,您正在使用包括黑色渐变边缘的深色主题。
您需要使用 Theme.Light.NoTitleBar
。 - jqpubliq