一、前言:
在做直播的時(shí)候,聊天頁(yè)面的頂部,要recyclerView的頂部增加半透明的效果,遇到了很多坑,記錄下來。
效果如下:

image.png
二、基礎(chǔ)知識(shí):
1. 基礎(chǔ)使用
requiresFadingEdge:屬性用來設(shè)置拉滾動(dòng)條時(shí) ,邊框漸變的方向。
- none(邊框顏色不變),
- horizontal(水平方向顏色變淡),
- vertical(垂直方向顏色變淡)。
fadingEdgeLength:用來設(shè)置邊框漸變的長(zhǎng)度
<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"/>

aaa.gif
我們可以看到頭部和尾部,都有半透明效果。
2. 只要頭部有半透明效果
重寫recycleView的類,重新設(shè)置返回值。
- 1. getTopFadingEdgeStrength(); 重寫這個(gè)方法,設(shè)置返回值是0,去掉頂部陰影;
- 2. getBottomFadingEdgeStrength(); 重寫這個(gè)方法,設(shè)置返回值是0,去底頂部陰影
- 3. getLeftFadingEdgeStrength(); 重寫這個(gè)方法,設(shè)置返回值是0,去掉左部陰影
- 4. getRightFadingEdgeStrength(); 重寫這個(gè)方法,設(shè)置返回值是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);
}
/**
* 重寫這個(gè)方法,返回值是0,去掉頂部陰影
*
* @return
*/
@Override
protected float getTopFadingEdgeStrength() {
return super.getTopFadingEdgeStrength();
}
/**
* 重寫這個(gè)方法,返回值是0,去底頂部陰影
*
* @return
*/
@Override
protected float getBottomFadingEdgeStrength() {
//return super.getBottomFadingEdgeStrength();
return 0;
}
/**
* 重寫這個(gè)方法,返回值是0,去左頂部陰影
*
* @return
*/
@Override
protected float getLeftFadingEdgeStrength() {
return super.getLeftFadingEdgeStrength();
}
/**
* 重寫這個(gè)方法,返回值是0,去底右部陰影
*
* @return
*/
@Override
protected float getRightFadingEdgeStrength() {
return super.getRightFadingEdgeStrength();
}
}