一、前言:
在做直播的时候,聊天页面的顶部,要recyclerView的顶部增加半透明的效果,遇到了很多坑,记录下来。
效果如下:
二、基础知识:
1. 基础使用
requiresFadingEdge:属性用来设置拉滚动条时 ,边框渐变的方向。
- none(边框颜色不变),
- horizontal(水平方向颜色变淡),
- vertical(垂直方向颜色变淡)。
fadingEdgeLength:用来设置边框渐变的长度
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:requiresFadingEdge="vertical"
android:fadingEdgeLength="40dp"/>
我们可以看到头部和尾部,都有半透明效果。
2. 只要头部有半透明效果
重写recycleView的类,重新设置返回值。
- 1. getTopFadingEdgeStrength(); 重写这个方法,设置返回值是0,去掉顶部阴影;
- 2. getBottomFadingEdgeStrength(); 重写这个方法,设置返回值是0,去底顶部阴影
- 3. getLeftFadingEdgeStrength(); 重写这个方法,设置返回值是0,去掉左部阴影
- 4. getRightFadingEdgeStrength(); 重写这个方法,设置返回值是0,去掉右部阴影
public class RecycleViewCustomer extends RecyclerView {
public RecycleViewCustomer(@NonNull Context context) {
super(context);
}
public RecycleViewCustomer(@NonNull Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public RecycleViewCustomer(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
/**
* 重写这个方法,返回值是0,去掉顶部阴影
*
* @return
*/
@Override
protected float getTopFadingEdgeStrength() {
return super.getTopFadingEdgeStrength();
}
/**
* 重写这个方法,返回值是0,去底顶部阴影
*
* @return
*/
@Override
protected float getBottomFadingEdgeStrength() {
//return super.getBottomFadingEdgeStrength();
return 0;
}
/**
* 重写这个方法,返回值是0,去左顶部阴影
*
* @return
*/
@Override
protected float getLeftFadingEdgeStrength() {
return super.getLeftFadingEdgeStrength();
}
/**
* 重写这个方法,返回值是0,去底右部阴影
*
* @return
*/
@Override
protected float getRightFadingEdgeStrength() {
return super.getRightFadingEdgeStrength();
}
}