实用技巧 | 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>


相关文章
ant-design Upload上传组件使用 编辑功能图片回显
ant-design Upload上传组件使用 编辑功能图片回显
1497 0
|
Android开发 开发者
解决No version of NDK matched the requested version问题
一个本来好好的项目,突然在运行的时候报错: No version of NDK matched the requested version 21.0.6113669. Versions available locally: 20.1.5948944 网上很多人建议在build.gradle中添加ndk,如下: android { ... ndkVersion '20.1.5948944' } 复制代码 也确实可以解决问题,但是本来一个对ndk版本没有强依赖的项目,现在固定在一个版本上,其他开发者也必须有这个具体版本才能正常编译运行。
2251 0
|
XML Java API
Android原生TabLayout使用全解析,看这篇就够了
Android原生TabLayout使用全解析,看这篇就够了
2667 0
Android原生TabLayout使用全解析,看这篇就够了
|
JavaScript 前端开发 Android开发
kotlin开发 webview如何在收到JS调用后,native返回数据给到JS
这段内容描述了在Hybrid App开发中,使用Kotlin的Compose构建的Web视图(WebView)如何通过JsBridge实现JavaScript与原生代码的交互
|
XML 缓存 安全
【Android篇】APK打包流程浅析
这里只讲解APK打包流程全过程。 现在2023年了,一般都是用Android studio来设计android,而最直接的安卓APK打包方式则是使用Android Studio集成直接生成apk,所以本文就介绍以AS集成生成APK的方式来讲解。
1289 0
【Android篇】APK打包流程浅析
|
文字识别 JavaScript Java
百度OCR识别图片文字,解决image format error错误
百度OCR识别图片文字,解决image format error错误
932 0
|
传感器 安全 测试技术
Android 13适配
Android 13适配
1072 0
|
存储 缓存 Java
Android C++系列:JNI开发准则
JNI 定义了两个关键数据结构,即“JavaVM”和“JNIEnv”。两者本质上都是指向函数表的二级指针。(在 C++ 版本中,它们是一些类,这些类具有指向函数表的指针,并具有通过该函数表间接调用的 JNI 函数的成员函数。)JavaVM 提供“调用接口”函数,我们可以利用这些函数创建和销毁 JavaVM。理论上,每个进程可以有多个 JavaVM,但 Android 只允许有一个。
502 0

热门文章

最新文章