Android 利用addView 动态给Activity添加View组件
本文主要讲述如何动态给UI界面添加布局和控件,在编程的时候很多时候需要动态显示一些内容,在动态添加View的时候,主要使用addView方法。
1. addView方法简介
在Android 中,可以利用排版View的 addView 函数,将动态产生的View 物件加入到排版View 中。
例子如下:
Activity代码:
public class helloWorld extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView( R.layout.main );
// 取得LinearLayout 物件
LinearLayout ll = (LinearLayout)findViewById(R.id.viewObj);
// 将TextView 加入到LinearLayout 中
TextView tv = new TextView(this);
tv.setText(Hello World);
ll. addView ( tv );
// 将Button 1 加入到LinearLayout 中
Button b1 = new Button(this);
b1.setText(取消);
ll. addView ( b1 );
// 将Button 2 加入到LinearLayout 中
Button b2 = new Button(this);
b2.setText(确定);
ll. addView ( b2 );
// 从LinearLayout 中移除Button 1
ll. removeView ( b1 );
}
}
上述代码的位置,是垂直顺序排列的因为界面代码Linerlayout的orientation设置的是vertical的,但是为了美观,需要设置添加的View的位置和样式。在添加View的时候分为两类来介绍,一种是布局(例如:Linearlayout等),一种是控件(例如:Button,TextView等等。)
2. 动态添加布局(包括样式和位置)
下面的例子将介绍如何动态添加布局,基本内容和上面的代码一致,主要注重如何控制添加的布局的位置。在控制布局的位置的时候使用LayoutParam类来实现。
例子:
界面代码和上面的界面代码类似,就不在重复介绍。
Activity类部分代码:
RelativeLayout rl = new RelativeLayout(this);
//设置RelativeLayout布局的宽高
RelativeLayout.LayoutParams relLayoutParams=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
this.addView(rl, relLayoutParams);
3. 动态添加控件
动态添加控件和添加布局很相似,下述代码主要注重看控制控件的位置,下面的代码和第二项添加布局的补充,在新添加的布局里面再添加控件。
界面代码同样不在重复。
Activity类部分代码:
RelativeLayout rl = new RelativeLayout(this);
//设置RelativeLayout布局的宽高
RelativeLayout.LayoutParams relLayoutParams=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
TextView temp = new TextView(this);
temp .setId(1);
temp.setText(“图片”);
rl.addView(temp);
TextView tv = new TextView(this);
tv.setText(“文字”);
tv.setId(2);
LayoutParams param1 = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
param1.addRule(RelativeLayout.BELOW, 1);//此控件在id为1的控件的下边
rl.addView(tv,param1);
Button update = new Button(this);
update.setText(Button);
LayoutParams param2 = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
param2.addRule(RelativeLayout.RIGHT_OF, 1);//此控件在id为1的控件的右边
rl.addView(update,param2);
this.addView(rl, relLayoutParams);
注意:控制位置和样式的时候,布局和控件使用的方法是一样的。
Android 利用addView 动态给Activity添加View组件相关推荐
- Android使用addView动态加载布局文件
第一步,要获取要将动态加载内容置入的容器 relativeLayout RelativeLayout relativeLayout = (RelativeLayout) findViewById(R. ...
- 微信小程序 动态添加view组件
在web中,我们动态添加DOM,可以用jQuery的方法,很简单.在微信小程序中怎么实现下面这么需求. 其中,里程数代表上一行到这一行地方的距离(这个不重要):要实现的就是点击增加途径地,就多一行,删 ...
- Activity、View、Window、DecorView的关系
android中真正展示给用户的是window和view,activity在android中所的作用主要是处理一些逻辑问题,比如生命周期的管理.建立窗口等.在android中,窗口的管理还是比较重要的 ...
- android手机apk动态替换桌面的logo和laber
具体操作如下: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android= ...
- android viewpager动态加载页面,Android viewpager中动态添加view并实现伪无限循环的方法...
本文实例讲述了Android viewpager中动态添加view并实现伪无限循环的方法.分享给大家供大家参考,具体如下: viewpager的使用,大家都熟悉,它可以实现页面之间左右滑动的切换,这里 ...
- 一种无需留坑为页面动态添加View方案
在Activity或Fragment页面动态添加View,有其应用场景,比如配合运营在首页动态插入H5活动页(如下图手淘的雪花例示[1]),在页面头部插入通知View等.本文结合ActivityLif ...
- android 如何获得activity的view对象,Android的Activity 、 Window 、 View之间的关系
什么是Activity .View . Window? Activity:是Android 四大组件之一, 是存放View对象的容器,也是我们界面的载体,可以用来展示一个界面.它有一个SetConte ...
- Android开发周报:Android Studio2.0发布、Activity动态创建
新闻 <Android Studio 2.0发布 增加代码热更新功能>:在近日的Android开发者大会中,Google高调发布了Android Studio 2.0.然而就在不到一周之前 ...
- 在ScrollView中动态添加View
需求:要求在ScrollView中动态添加View,并且添加的View可以进行缩进. 思路:一开始的思路是使用ListView动态添加Item的方法来实现,即当需要新增一个View时,就给适配器新增一 ...
最新文章
- dev c++ 最新版本5.0
- python获取数组中最多的元素
- 田志刚:企业知识管理的知识传播
- AMD院士站台 异构计算与OpenCL编程师资培训首站清华开讲
- LinkedList源码阅读笔记(1.8)
- php获取当天日期及星期几,[PHP]获取当天或指定日期属于星期几
- oracle 下载 pb12.5,PowerBuilder
- 基于单片机烟雾温湿度甲醛监测设计
- Windows下SVN提交模板制作及应用
- Steam显示-118错误,页面无法显示
- 无线网络WI-FI技术的专业名词解析
- 10个超实用的微信小程序 | 值得推荐的微信小程序
- iOS开发- 文件共享 利用iTunes导入文件 并且显示已有文件
- mule seda的学习一
- 面试中java 知识点
- 图片映射字体反爬-某租房网
- 校尉羽书飞瀚海,顺序表中增删改
- drf 获取域名+端口_如何注册域名(+简单提示可免费获取)
- Postgresql - 使用zabbix监控数据库- pg_monz
- 1.H3CNE-计算机网络概述
热门文章
- 【Groovy】自定义 Xml 生成器 BuilderSupport ( 构造 Xml 节点类 | 封装节点名称、节点值、节点属性、子节点 | 将封装的节点数据转为 Xml 字符串 )
- 【C 语言】文件操作 ( 配置文件读写 | 框架搭建 | 主函数逻辑结构 | 启动无限循环 | 接收用户操作值 | 宏定义 | 显示操作菜单 )
- 【每日随笔】电子签名 ( 下载 “e 签保“ 应用 | 使用 手机号 + 短信验证码 登录 | 发起签署 | 签名 | 获取签名后的 PDF 文件及出证信息 )
- 【Android 应用开发】 ActionBar 基础
- Linux系统的基本命令
- 计算首站到末站最小费用
- CAS SSO 单点登录 实例
- 实验四、主存空间的分配和回收模拟
- 关于数据库性能优化小经验
- ajaxfileupload带多个参数上传方法