(原创)从addView讲到LayoutParams

2023-05-16

  

Android开发中,有时候要动态添加布局,这时候我们都会采用一个叫做addView的方法,那么就先来讲一讲这个方法

addView是viewGroup中的的方法,故而是用来给布局添加子控件用的,他主要有这几个重载方法

ViewGroup.addView(View child);

ViewGroup.addView(View child,int index);

ViewGroup.addView(View child, int width,int height);

ViewGroup.addView(View child, LayoutParams params);

ViewGroup.addView(View child,int index, LayoutParams params);

下面分别介绍这些参数

View child  就是你要加到父布局内的子控件或者子布局

int index 代表添加的层级顺序,在LinearLayout里0代表最开始的位置,-1代表最后的位置。在RelativeLayout和FrameLayout里0代表最底层,-1代表最外层

int width,int height 设置添加控件的宽高,也可以用LayoutParams.WRAP_CONTENT和LayoutParams.MATCH_PARENT。这个等下会详细讲到

最后,我们注意到,参数里还有一个 LayoutParams params

接下来就详细讲下这个。

如果直接从字面上来看,LayoutParams 应该是 布局参数 的意思。

这里注意一点,LayoutParams 代表的是子控件相对于父控件的布局参数。

比如一个LinearLayout.addview一个TextView,这个时候TextView的LayoutParams 就应该是LinearLayout包下面的LayoutParams 。换成其他的则会报错。

也就是说,父布局下的子控件才需要LayoutParams 

通过设置这个LayoutParams 子控件才能更好的确定自己在父布局里的一些格式

那么addView的LayoutParams 参数也就清楚了。即是给即将添加进来的子控件设置布局的格式。

当然,除了在addView的参数里设置,子控件本身也可以设置

View提供了一个setLayoutParams 方法用来给子控件设置参数格式

再次提示:根据不同的父布局应该设置不同包下的LayoutParams 。常见的有LinearLayout包,RelativeLayout包下和FrameLayout包下

那么LayoutParams 都有哪些属性呢?

下面开始介绍

首先,他的构造函数里可以设置宽高,也可以直接用LayoutParams对象名的width和height属性来设置宽高

宽高可以是数字也可以是LayoutParams.WRAP_CONTENT和LayoutParams.MATCH_PARENT

第二

对象名.topMargin

对象名.leftMargin

对象名.rightMargin

对象名.bottomMargin

用来设置不同的Margin

第三

对象名.gravity

用来设置子布局相对于父布局的位置

注意

子布局自己设置内部位置用自身的setGravity方法即可

最后 RelativeLayout包下的LayoutParams还有这一个属性

addRule。它用来设置对齐方式的,一共有两个参数

如果只写第一个参数,那么只可以设置对父布局的对齐方式

第二个参数则是加上兄弟布局的id,便可以设置对兄弟布局的对齐方式

以上就是addView和LayoutParams的相关内容,希望对朋友们有所帮助

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(原创)从addView讲到LayoutParams 的相关文章

随机推荐

  • 普通程序员如何逆袭,达到财富自由?

    这两天闲逛知乎 xff0c 发现了一个有趣的问题 xff1a 大部分人的回答大概率无非这两种模式 xff1a 1 去大厂 混到管理层或者高P xff0c 拿大量股权 xff0c 财务自由 这个模式还挺常见的 xff0c 基本上阿里P8能到年
  • Deepin Linux系统安装及显示器配置教程(可竖屏)

    https blog csdn net weixin 41019705 article details 102683002
  • mac删除应用残留用户及清除dns缓存

    xff01 如果发现活动监视器中存在应用残留创建的用户在使用cup xff0c 建议删除这个用户 xff0c 减少cup开销 介绍这个考虑两点 xff1a linux下常用的添加用户到组的方式 usermod a G 用户药附加到的组 用户
  • linux环境下如何卸载一路赚钱(yilu/mservice)

    一 删除定时任务 xff1a sudo crontab l u root 2 gt dev null grep v mservice sudo crontab u root 二 停止服务 对于ubuntu以及centos 7的用户 serv
  • 网络警察 (哈希表)

    题目描述 作为一名网络警察 xff0c 你的任务是监视电子邮件 xff0c 看其中是否有一些敏感的关键词 不过 xff0c 有些狡猾的犯罪嫌疑人会改变某些单词的字母顺序 xff0c 以逃避检查 请编写一个程序 xff0c 发现这种调整过顺序
  • Windows系统USB转CDC串口驱动限制说明

    USB转串口芯片目前主流的几种USB类别有 xff1a 1 USB 厂商类 xff1b 2 USB CDC类 xff1b 3 USB HID类 xff1b 其中若使用USB CDC系统内置驱动时 xff0c 使用时会有诸多特殊性 xff0c
  • XShell 6连接linux,上传windows 文件到虚拟机,在Linux下安装Qt

    一 XShell 6通过SSH连接Liunx 1 下载XShell xff0c 并安装 xff1b 这里建议下载XShell破解版 2 查看windows的IP和LINUX的IP是否一样 1 xff09 虚拟机上点击 编辑 gt 虚拟网络编
  • Activity中onNewIntent()方法触发及注意事项

    Activity的onNewIntent 方法何时会被调用 前提 ActivityA已经启动过 处于当前应用的Activity堆栈中 当ActivityA的LaunchMode为SingleTop时 xff0c 如果ActivityA在栈顶
  • (原创)Android Studio解除SVN绑定

    配置了SVN的项目 xff0c 如果想要解除配置该如何做呢 xff1f 一般的处理方法 xff0c 是找到项目的地址 xff0c 把 SVN文件夹删除 但是这样还不够彻底 因为项目的文件名还是有svn配置后的颜色 xff0c 如下图 如何让
  • Ocelot网关使用IdentityServer4认证

    环境 xff1a window10 x64vs2022 企业版 17 0 0 NET 6 0IdentityServer4 AccessTokenValidation 3 0 1Ocelot 17 0 0 Ocelot是在 net core
  • 【记录】Ubuntu美化之Gnome桌面教程

    嘿嘿 xff0c 什么都不说了 xff0c 先上图 支持多个桌面同时运行 xff0c 界面简洁 图标美观 右下角的托盘也很可爱 第一步 xff1a 第一步当然是要安装gnome啦 GNOME已经包含在Ubuntu软件库中 您所要做的就是打开
  • python 中 机器学习算法 --决策树

    文章目录 思维脑图3 1 2 用pandas加载数据集3 1 3 清洗数据集现在计算这些的实际值主队和客队最后一场比赛赢了吗 xff1f 3 2 决策树3 2 1 决策树中的参数3 2 2 决策树的使用 3 3 体育赛事结果预测 3 4 随
  • 2021-11-01 福州高速公路定位测试有感

    室内定位测试大大小小经历了数十次 xff0c 这次福州的高速公路隧道测试感触颇多 第一 强大的自驱力 xff1a 从测试安排出差伊始 xff0c 团队成员主动提出听从安排 xff0c 积极配合 xff1b 讨论测试计划和方案时 xff0c
  • New Timeline的Toolbar样式设计

    最近在做新版的Timeline xff0c Toolbar Menu 的功能基本完成 xff0c 因此把截图拿出来与各位博友分享一下 新版Timeline HTML版本 主页面 xff1a 这次主要讲解一下Toolbar Menu 的功能
  • VS改大小写的快捷键

    改成小写 xff1a Ctrl 43 U 改成大写 xff1a Ctrl 43 Shift 43 U 记得要选中要修改的一段英文
  • SQL两表之间:根据一个表的字段更新另一个表的字段

    1 写法轻松 xff0c 更新效率高 xff1a update table1 set field1 61 table2 field1 field2 61 table2 field2 from table2 where table1 id 6
  • 多边形面积计算公式

    function polygonArea points var i j var area 61 0 for i 61 0 i lt points length i 43 43 j 61 i 43 1 points length area 4
  • table合并单元格colspan和rowspan

    span style font family none code span style background color rgb 255 255 0 span style font family none code span style f
  • jQuery两个稳定版本的比较

    jquery历经了多个版本的更新 xff0c 版本上的比较貌似没什么必要性 xff0c 一般来说新的版本会比旧的版本各方面都略有提升 xff0c 但由于新版中增加了各种新的功能 xff0c 难免会引起bug的发生 评估一个版本是否适合当前开
  • (原创)从addView讲到LayoutParams

    Android开发中 xff0c 有时候要动态添加布局 xff0c 这时候我们都会采用一个叫做addView的方法 xff0c 那么就先来讲一讲这个方法 addView是viewGroup中的的方法 xff0c 故而是用来给布局添加子控件用