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

相关推荐
zlpzpl23 分钟前
MySQL 的 INSERT(插入数据)详解
android·数据库·mysql
Jomurphys3 小时前
Compose 调用 - 震动 LocalHapticFeedback
android·compose
非凡ghost3 小时前
小X分身APP(手机分身类工具)
android·windows·学习·智能手机·软件需求
erqi7 小时前
Compose你入门吧
android
q***76567 小时前
MySQL 中如何进行 SQL 调优
android·sql·mysql
zhanglinping6197 小时前
MySQL——内置函数
android·数据库·mysql
m***78747 小时前
mysql之字符串函数
android·数据库·mysql
w***71108 小时前
MySQL 事务的操作和四大特性
android·数据库·mysql
松叶似针10 小时前
Flutter三方库适配OpenHarmony【secure_application】— Android 端 FLAG_SECURE 实现分析
android·flutter
cjl_85200811 小时前
[MySQL] MySQL复合查询(多表查询、子查询)
android·mysql·adb