设置RecyleView的最大高度
1、首先添加用样式,在attrs文件里添加如下代码:
2、 重写recycleView的onMeasure方法:
import android.content.Context;
import android.content.res.TypedArray;
import android.support.v7.widget.RecyclerView;
import android.util.AttributeSet;
/**
* 设置recycleView最大的高度
* 用法:
*
*android:layout_width="match_parent"
*android:layout_height="wrap_content"
*app:maxHeight="200dp" />
*/
public class MaxHeightRecyclerView extends RecyclerView {
private int maxHeight;
【设置RecyleView的最大高度】public MaxHeightRecyclerView(Context context) {
super(context, null);
}
public MaxHeightRecyclerView(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
initialize(context, attributeSet);
}
public MaxHeightRecyclerView(Context context, AttributeSet attributeSet, int defStyleAttr) {
super(context, attributeSet, defStyleAttr);
initialize(context, attributeSet);
}
public void initialize(Context context, AttributeSet attributeSet) {
if (attributeSet !=null) {
TypedArray typedArray = context.obtainStyledAttributes(attributeSet, R.styleable.MaxHeightRecyclerView);
if (typedArray !=null) {
maxHeight = typedArray.getLayoutDimension(R.styleable.MaxHeightRecyclerView_maxHeight, maxHeight);
}
}
}
@Override
protected void onMeasure(int widthSpec, int heightSpec) {
if (maxHeight >0) {
heightSpec = MeasureSpec.makeMeasureSpec(maxHeight, MeasureSpec.AT_MOST);
}
super.onMeasure(widthSpec, heightSpec);
}
}
推荐阅读
- 热闹中的孤独
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- 一个人的旅行,三亚
- 第6.2章(设置属性)
- 布丽吉特,人生绝对的赢家
- 慢慢的美丽
- 尽力
- 一个小故事,我的思考。
- 家乡的那条小河