RecyclerView实现设置最大高度maxHeight
RecyclerView是没有maxHeight属性配置的,但我们可以通过继承RecyclerView自定义实现此属性功能。
具体实现如下:
public class MaxHeightRecyclerView extends RecyclerView {
private int mMaxHeight;
public MaxHeightRecyclerView(Context context) {
super(context);
}
public MaxHeightRecyclerView(Context context, AttributeSet attrs) {
super(context, attrs);
initialize(context, attrs);
}
public MaxHeightRecyclerView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initialize(context, attrs);
}
private void initialize(Context context, AttributeSet attrs) {
TypedArray arr = context.obtainStyledAttributes(attrs, R.styleable.MaxHeightRecyclerView);
mMaxHeight = arr.getLayoutDimension(R.styleable.MaxHeightRecyclerView_maxHeight, mMaxHeight);
arr.recycle();
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
if (mMaxHeight > 0) {
heightMeasureSpec = MeasureSpec.makeMeasureSpec(mMaxHeight, MeasureSpec.AT_MOST);
}
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
}
在style.xml文件中加入:
<declare-styleable name="MaxHeightRecyclerView">
<attr name="maxHeight" format="dimension" />
</declare-styleable>
然后就可以在xml中使用:
app:maxHeight="400dp"
版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/02/25/recyclerview-implement-maximum-height-maxheight-setting/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。
THE END
0
二维码
打赏
海报
RecyclerView实现设置最大高度maxHeight
RecyclerView是没有maxHeight属性配置的,但我们可以通过继承RecyclerView自定义实现此属性功能。
具体实现如下:
public class MaxHeightRecyclerView exten……
文章目录
关闭
共有 0 条评论