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


相关文章
|
5月前
|
Android开发
Android Studio入门之常用布局的讲解以及实战(附源码 超详细必看)(包括线性布局、权重布局、相对布局、网格布局、滚动视图 )
Android Studio入门之常用布局的讲解以及实战(附源码 超详细必看)(包括线性布局、权重布局、相对布局、网格布局、滚动视图 )
141 0
|
5月前
|
XML Java Android开发
Android Studio中视图基础之设置视图的宽高、间距、对齐方式的讲解与实战(附源码 超详细必看)
Android Studio中视图基础之设置视图的宽高、间距、对齐方式的讲解与实战(附源码 超详细必看)
82 0
|
5月前
[Qt5&布局] 控件自动填满所在布局框架
[Qt5&布局] 控件自动填满所在布局框架
39 0
[Qt5&布局] 控件自动填满所在布局框架
|
Android开发
日常开发 | Android设置属性动画无限旋转
说简单点 Animator 并不负责动画,它只是负责计算不同时间线该有的值,从而让用户自己去设置,可扩展性更强。
295 0
|
Android开发
Android获取状态栏高度,动态设置控件高度
获取状态栏高度;动态设置控件高度 ;务必保持一致 ( LinearLayout. LinearLayout.LayoutParams 与需要设置的控件父控件)
721 0
|
开发框架 容器
Flutter NestedScrollView实现的一个经典滑动折叠头部图片的效果
Flutter是谷歌推出的最新的移动开发框架。 Flutter NestedScrollView 滑动组件是用来处理复杂情况下的滑动应用场景,如向上滑动视图时,要折叠隐藏一部分内容,这时候就需要使用到 NestedScrollView 与 SliverAppBar 的结合使用。
Flutter NestedScrollView实现的一个经典滑动折叠头部图片的效果
|
缓存 前端开发 API
Android打造万能自定义阴影控件
目录介绍 01.阴影效果有哪些实现方式 02.实现阴影效果Api 03.设置阴影需要注意哪些 04.常见Shape实现阴影效果 05.自定义阴影效果控件 06.如何使用该阴影控件 07.在recyclerView中使用注意点 01.
1344 0
|
前端开发 Android开发 Rust
Android - 条纹进度条实现,调整view宽度仿进度条
相关代码请参阅: https://github.com/RustFisher/aboutView/blob/master/app/src/main/java/com/rust/aboutview/activity/RoundCornerActivity.java 美工同学指定了一个进度条样式 这斑斓的进度条,如果要自己画实在是劳民伤财。
3130 0