Android 适配:版本适配

文章目录

自定义ViewGroup添加View时对View对应的LayoutParams的处理操作

Android 7只需要重写ViewGroup的generateLayoutParams方法,创建需要的LayoutParmas

复制代码
    @Override
    public LayoutParams generateLayoutParams(AttributeSet attrs) {
        return new MarginLayoutParams(getContext(), attrs);
    }

Android 15 需要重写ViewGroup的generateLayoutParams方法和generateDefaultLayoutParams方法

复制代码
    @Override
    protected LayoutParams generateDefaultLayoutParams() {
        return new MarginLayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    }

    @Override
    public LayoutParams generateLayoutParams(AttributeSet attrs) {
        return new MarginLayoutParams(getContext(), attrs);
    }

小结

如果要自定义ViewGroup,对添加到其中的View对应LayoutParams有特殊要求(如需要是MarginLayoutParams),需要重写ViewGroup.generateDefaultLayoutParams()和ViewGroup.generateLayoutParams()来保证各个版本都没有问题

相关推荐
Godikov几秒前
在 Android 上跑 Kafka Consumer:一个实时定位数据接入的踩坑记录
android
mmsx27 分钟前
Android 自定义 View 三关:触摸分发、绘制与坐标错位
android·kotlin
JMchen39 分钟前
自定义View在复杂业务场景中的实战
android·kotlin·canvas
hai_android43 分钟前
RecyclerView 缓存机制详解
android·kotlin·android jetpack
_祝你今天愉快7 小时前
UI核心 - UI绘制流程及原理
android
mmsx8 小时前
Android 一个设备多个 App 抢:跨进程共享服务的架构设计
android·kotlin·app
mmsx8 小时前
Android GIS系列 栅格怎么存、格网怎么归算:两个容易混淆的 GIS 链路
android·性能优化·app
陈柒吖8 小时前
安卓代码加固(1):加密DEX
android·前端
mmsx8 小时前
Android GIS系列 串口、蓝牙、USB、网络:一套统一抽象怎么扛住四种通道
android·app·产品
二流小码农8 小时前
鸿蒙开发:ArrayList,可不会让UI更新哦
android·ios·harmonyos