2021-02-23 遇到的一点小问题
.
修改RecyclerView滚动条颜色和滚动条的背景颜色,可以用color颜色,也可以用drawable图片:
<!--这个是滚动条的颜色-->
android:scrollbarThumbVertical="@drawable/wannoo_151515"
<!--这个是滚动条的背景色-->
android:scrollbarTrackVertical="#FF0000"
因为设计的让滚动条不是直角,所以用的shape绘制的drawable:
<!--这个是res/drawable文件夹的wannoo_151515文件-->
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/wannoo" />
<corners android:radius="72dp" />
</shape>
wannoo
https://segmentfault.com/a/1190000012800450
.
这个是设置滚动条常驻,当内容多时,滚动条会一直显示着:
recycler.setScrollbarFadingEnabled(false);
recycler.setScrollBarFadeDuration(0);
注意:xml里不要写android:overScrollMode="never"
,会无法生效。
如果不用java设置,也可以直接在xml里写
android:fadeScrollbars="false"
android:scrollbarFadeDuration="0"
.
这次是在PopupWindow上显示RecyclerView,底部还固定有一个按钮,为了效果有限制最大的高度。
如果内容多,按钮固定底部,RecyclerView内容滑动,如果内容少,RecyclerView只展示当前内容高度,底部按钮接后面。
网上找了下,RecyclerView实现设置最大高度maxHeight,能直接使用。
不过太懒了,而且就一个地方用,不想自定义参数,直接写固定的。
package com.thunder_data.orbiter.vit.view;
import android.content.Context;
import android.util.AttributeSet;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.RecyclerView;
import com.thunder_data.orbiter.vit.tools.ToolSize;
class MaxHeightRecyclerView extends RecyclerView {
private final int mMaxHeight = ToolSize.getSize(150);//固定的150dp
public MaxHeightRecyclerView(@NonNull Context context) {
super(context);
}
public MaxHeightRecyclerView(@NonNull Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public MaxHeightRecyclerView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
if (mMaxHeight > 0) {
heightMeasureSpec = MeasureSpec.makeMeasureSpec(mMaxHeight, MeasureSpec.AT_MOST);
}
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
}
网友评论