在很多时候xml里面的布局并不能满足我们的需求。这时候就需要用代码进行动态布局,前些天在对RelativeLayout 进行动态布局时遇到了些问题,现在解决了,分享下。

我现在在RelativeLayout 里面 动态创建4个View,是两行两列的效果。

1.添加第一个View。

RelativeLayout layout = (RelativeLayout)findViewById(R.layout.rl);

ImageView item1 = new ImageView(this);

item1.setImageResource(R.drawable.x);//设置图片

RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(

LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);

lp.addRule(RelativeLayout.ALIGN_PARENT_LEFT);//与父容器的左侧对齐

lp.addRule(RelativeLayout.ALIGN_PARENT_TOP);//与父容器的上侧对齐

lp.leftMargin=30;

lp.topMargin=30;

item1.setId(1);//设置这个View 的id

item1.setLayoutParams(lp);//设置布局参数

layout.addView(item1);//RelativeLayout添加子View

2.添加第二个View。

ImageView item2 = new ImageView(this);

item2.setImageResource(R.drawable.x);//设置图片

RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(

LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);

lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);

lp.addRule(RelativeLayout.ALIGN_PARENT_TOP);

lp.rightMargin=30;

lp.topMargin=30;

item2.setId(2);

item2.setLayoutParams(lp);

layout.addView(item2);

3.添加第三个View。

View childView1 = skinsLayout.getChildAt(0);刚加进去RelativeLayout的第一个子View

View item3 =createSkinItem(friendContext);

RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(

LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);

lp.addRule(RelativeLayout.ALIGN_PARENT_LEFT);

lp.addRule(RelativeLayout.BELOW,  childView1.getId());//设置item3在     //chlidView1的下面

lp.leftMargin=30;

lp.topMargin=30;

item3.setId(3);

item3.setLayoutParams(lp);

layout.addView(item3);

3.添加第四个View。

View childView2 = skinsLayout.getChildAt(1);//获取容器的第二个子view

ImageView item4 = new ImageView(this);

RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(

LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);

lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);

lp.addRule(RelativeLayout.BELOW,  childView2.getId());

lp.rightMargin=30;

lp.topMargin=30;

item.setId(4);

item.setLayoutParams(lp);

layout.addView(item);

转载于:https://blog.51cto.com/lovesong/1183335

android RelativeLayout 动态添加子View相关推荐

  1. android relativelayout动态添加视图,android RelativeLayout 动态添加子View

    在很多时候xml里面的布局并不能满足我们的需求.这时候就需要用代码进行动态布局,前些天在对RelativeLayout 进行动态布局时遇到了些问题,现在解决了,分享下. 我现在在RelativeLay ...

  2. android 添加子view,Android基于Window.ID_ANDROID_CONTENT给定id添加子View

    Android基于Window.ID_ANDROID_CONTENT给定id添加子View 这一技术特点在一些视频播放器中比较有用. 例如代码: package zhangphil.demo; imp ...

  3. android radiogroup 添加,如何在android中动态添加textview到radiogroup

    大家好, 我们想动态地在radiogroup旁边添加textview.基于服务响应,我们需要在不使用xml的情况下将标签添加到radiogroup. 在某些情况下基于最长无线电如何在android中动 ...

  4. Android ViewDragHelper:控制子View能否拖曳及水平方向的拖曳边界(2)

     Android ViewDragHelper:控制子View能否拖曳及水平方向的拖曳边界(2) 附录文章1简单介绍了Android ViewDragHelper的使用,注意到附录文章1的代码运行 ...

  5. android 在指定位置添加布局,Android 如何动态添加 View 并显示在指定位置。

    引子 最近,在做产品的需求的时候,遇到 PM 要求在某个按钮上添加一个新手引导动画,引导用户去点击.作为 RD,我哗啦啦的就写好相关逻辑了.自测完成后,提测,PM Review 效果. 看完后,PM ...

  6. android动态添加控件在指定位置,Android 如何动态添加 View 并显示在指定位置。

    引子 最近,在做产品的需求的时候,遇到 PM 要求在某个按钮上添加一个新手引导动画,引导用户去点击.作为 RD,我哗啦啦的就写好相关逻辑了.自测完成后,提测,PM Review 效果. 看完后,PM ...

  7. android 动态添加删除控件,求教Android,动态添加到控件能动态删除吗?

    protected View createView() {//动态添加组件 Button btn = new Button(this);//动态创建按钮 btn.setId(index++); btn ...

  8. android ,动态布局 butterknife,与Butterknife绑定在android中动态添加视图

    如何绑定布局中存在的视图,该视图使用ButterKnife动态添加到父视图中. 我有一个LinearLayout说容器.我有一个自定义布局,其中包含两个按钮,将此布局称为子视图 在活动中,我将chil ...

  9. android listview动态添加viewpager,向 ViewPager 中添加 包含 ListView 的 Fragment

    对与fragment就不说什么了,直接看API手册吧,亲. 向 ViewPager 中添加 包含 ListView 的 Fragment 的过程比较麻烦.他所表现的效果就是新闻客户端的滑动翻页效果. ...

  10. android动态添加xml布局,android – 如何动态添加视图已经在xml布局中声明的RelativeLayout?...

    为第二个添加的Button LayoutParams添加规则RelativeLayout.RIGHT_OF: // first Button RelativeLayout rLayout = (Rel ...

最新文章

  1. Kafka0.10.2.0分布式集群安装
  2. 秒懂Mycat和MySQL的区别【转自百度知道】
  3. Linux学习之系统编程篇:创建匿名映射区(只适用于有血缘关系)
  4. 20170825 - Q - 集合框架 、 集合操作 —— 线性表
  5. 公司邮箱发邮件的util类
  6. 小米5G手机为什么如此便宜?卢伟冰解释定价原因
  7. XMLHttpRequest.overrideMimeType()
  8. Java工程师必学知识点【吊打面试官系列】
  9. c++注释快捷键_是不是晚了点:Visual Studio可以自动生成注释啦!
  10. arguments的类型是Array吗?
  11. 全国夜间灯光指数数据、GDP密度分布、人口密度分布、土地利用数据、降雨量数据
  12. 考勤系统怎样登录服务器,ZKADMS考勤管理系统数据库连接步骤
  13. JS技能点--日期时间格式化
  14. python海龟画图函数汇总
  15. 解决:文件名太长删不掉
  16. 矩阵、方程自由度的理解
  17. FastAPI 教程翻译 - 用户指南 26 - 安全性
  18. Xcode自动编译、打包、上传到蒲公英应用分发平台
  19. 多股电线与单股电线怎么选
  20. consul java_集成Consul负载均衡多实例注册_java_天雨流芳-CSDN博客

热门文章

  1. 台服海岛纪元显示无法连接服务器,打开海岛纪元提示网络异常或者连接不上
  2. wpf 导航按钮去掉_高德地图推出个性导航,你的私人订制导航是什么样的?
  3. spring cloud构建互联网分布式微服务云平台-服务提供与调用
  4. js字符串编码和unicode编码互转
  5. Python如何运行单个.py文件而不是unittest
  6. 关于Adaper的相关用法
  7. 从用户洞察到数据应用 诸葛io让“增长”深入场景
  8. Android MVP模式 谷歌官方代码解读
  9. C#中的线程lt;一gt;
  10. java.text.ParseException: Unparseable date: