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

相关推荐
一起搞IT吧31 分钟前
相机拍照无响应问题分析一:【MEMORY_NOT_ENOUGH导致】持续快拍,一会儿无法拍照了
android·c++·数码相机·智能手机
是店小二呀1 小时前
【MySQL】MySQL 从安装到理解
android·mysql·adb
we1less2 小时前
[audio] threadLoop_write 到 audio-hal 分析
android
冬奇Lab4 小时前
一次必现ANR问题的深度分析与解决之旅:当NestedScrollView遇上VelocityTracker
android·性能优化·debug
三少爷的鞋5 小时前
2025 技术总结:我把技术重新结构化的一年
android
叶羽西5 小时前
查Google Android某个子仓库的修改情况
android
a176029317575 小时前
3DS模拟器 Azahar模拟器最新版 安卓汉化中文版+PC版附3DS中文游戏资源全集+3DS密匙key和字库
android·游戏
山山而川 潺潺如镜6 小时前
python防止程序多开,但程序运行脚本
android·开发语言·python
花开彼岸天~6 小时前
Flutter跨平台开发:Android View 在鸿蒙系统上的使用指南
android·flutter·harmonyos
子一!!6 小时前
MySQL==表的结构操作1
android·python·adb