(原创)从addView讲到LayoutParams

  

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的相关内容,希望对朋友们有所帮助

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值