您的位置:首页 > 其它

Scrollview&RecycleView&ListView&Viewpager的顶部/底部阴影颜色改变

2018-02-08 19:35 627 查看

Scrollview&RecycleView&ListView&Viewpager的顶部/底部阴影颜色改变

0 利用主题设置

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent"<
4000
/span>>@color/colorAccent</item>
<item name="android:colorEdgeEffect">@color/colorAccent</item>
</style>


但是注意,只能在api21以上设置



以下的方法为反射设置

1 Scrollview

牵扯到的两个属性
mEdgeGlowTop
,
mEdgeGlowBottom
,都为
EdgeEffect
类型

直接去反射改变颜色

这里以
mEdgeGlowTop
为例

Field topMethod = ScrollView.class.getDeclaredField("mEdgeGlowTop");
topMethod.setAccessible(true);
EdgeEffect top = (EdgeEffect) topMethod.get(scrollView);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
top.setColor(Color.RED);
}


2 RecycleView

RecycleView
有4个属性,
mLeftGlow, mTopGlow, mRightGlow, mBottomGlow


采用和
Scrollview
同样的方式既可以做到

3 ListView

listview是有一个
public
的方法的

/**
* Sets the drawable that will be drawn above all other list content.
* This area can become visible when the user overscrolls the list.
*
* @param header The drawable to use
*/
public void setOverscrollHeader(Drawable header) {
mOverScrollHeader = header;
if (mScrollY < 0) {
invalidate();
}
}

/**
* Sets the drawable that will be drawn below all other list content.
* This area can become visible when the user overscrolls the list,
* or when the list's content does not fully fill the container area.
*
* @param footer The drawable to use
*/
public void setOverscrollFooter(Drawable footer) {
mOverScrollFooter = footer;
invalidate();
}


4 viewpager

Viewpager
同样有两个属性,是左右的,反射方式同样适用
Scrollview
的,属性为
mLeftEdge
,
mRightEdge
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐