实用技巧 | RecyclerView 设置最大高度

简介: 实用技巧 | RecyclerView 设置最大高度
class MaxRecyclerView : RecyclerView {
    private var mMaxHeight = 0
    constructor(context: Context) : super(context) {}
    constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {
        init(context, attrs)
    }
    constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
        init(context, attrs)
    }
    private fun init(context: Context, attrs: AttributeSet?) {
        val arr = context.obtainStyledAttributes(attrs, R.styleable.MaxRecyclerView)
        mMaxHeight = arr.getLayoutDimension(R.styleable.MaxRecyclerView_maxHeight, mMaxHeight)
        arr.recycle()
    }
    override fun onMeasure(widthSpec: Int, heightSpec: Int) {
        super.onMeasure(widthSpec, heightSpec)
        val height = measuredHeight
        if (height > mMaxHeight) {
            setMeasuredDimension(widthSpec, mMaxHeight)
        }
    }
}


如果测量的高度 大于 最大高度,则使用最大高度,否则默认使用测量的高度


 

<declare-styleable name="MaxRecyclerView">
        <attr name="maxHeight" format="dimension" />
    </declare-styleable>


相关文章
|
监控 网络协议 iOS开发
程序退到后台的时候,所有线程被挂起,系统回收所有的socket资源问题及解决方案
程序退到后台的时候,所有线程被挂起,系统回收所有的socket资源问题及解决方案
485 0
|
XML Android开发 数据格式
RecyclerView 、ScrollView滚动条长宽设置
RecyclerView 、ScrollView滚动条长宽设置
719 0
|
Dart IDE 开发工具
Flutter Version Manager (FVM): Flutter的版本管理终极指南
Flutter Version Manager (FVM): Flutter的版本管理终极指南
4882 1
|
开发工具 Android开发
Android studio历史版本下载
Android studio历史版本下载
4729 0
|
XML 缓存 安全
【Android篇】APK打包流程浅析
这里只讲解APK打包流程全过程。 现在2023年了,一般都是用Android studio来设计android,而最直接的安卓APK打包方式则是使用Android Studio集成直接生成apk,所以本文就介绍以AS集成生成APK的方式来讲解。
1043 0
【Android篇】APK打包流程浅析
|
机器学习/深度学习 数据采集 算法
Python基于低方差特征选择(VarianceThreshold)、遗传算法(TPOTRegressor)实现信用评分卡模型
Python基于低方差特征选择(VarianceThreshold)、遗传算法(TPOTRegressor)实现信用评分卡模型
|
Android开发
Android自定义一个属于自己的刻度尺
Android自定义一个属于自己的刻度尺
223 0
|
Android开发
Android Studio 控制台中文乱码,解决方案都在这里了,完美解决
Android Studio 控制台中文乱码,解决方案都在这里了,完美解决
|
XML Java 数据安全/隐私保护
Android 输入框(EditText)的输入限制,数字英文邮箱,可见\隐藏切换,踩过的坑!
最近做到了登录注册模块的各种输入判定,监听等等,因为需求上的需要,还是搞了好一会儿,今天在这总结一下。 常规的输入框输入需求有纯数字,字母,混合输入,邮箱,键盘默认打开数字键盘,密码可见性,键盘的收起弹出等等。
|
安全 Android开发 Windows
“一文读懂”系列:无处不在的WMS
想要深入了解Window在系统中的机制,WMS是绕不过去的坎。有句话说的好:**AMS和WMS占据了Framework层的半壁江山**,所以了解这两个概念对我们在日常开发中的性能优化或有想转Framework开发的都大有帮助。