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()来保证各个版本都没有问题

相关推荐
kymjs张涛8 小时前
OpenClaw 学习小组:初识
android·linux·人工智能
范特西林11 小时前
实战演练——从零实现一个高性能 Binder 服务
android
范特西林12 小时前
代码的生成:AIDL 编译器与 Parcel 的序列化艺术
android
范特西林12 小时前
深入内核:Binder 驱动的内存管理与事务调度
android
范特西林13 小时前
解剖麻雀:Binder 通信的整体架构全景图
android
范特西林13 小时前
破冰之旅:为什么 Android 选择了 Binder?
android
奔跑中的蜗牛66614 小时前
一次播放器架构升级:Android 直播间 ANR 下降 60%
android
测试工坊16 小时前
Android 视频播放卡顿检测——帧率之外的第二战场
android
Kapaseker18 小时前
一杯美式深入理解 data class
android·kotlin
鹏多多18 小时前
Flutter使用screenshot进行截屏和截长图以及分享保存的全流程指南
android·前端·flutter