Android 动态的添加xml布局

Android 动态的添加xml布局,第1张

1 在res/layout 中新建一个xxx.xml布局文件

2.在新建的布局文件中填写想要的布局内容(如下)

3.通过下面的方式完成

如下代码:

LinearLayout layout = new LinearLayout(this)

TextView tx = new TextView(this)

tx.setText('我是动态添加的')

layout.addView(tx)

setContentView(layout)

这就动态添加了一个线性布局,并且在布局里面加了一个textview

你的问题应该是要动态生成空间吧。

下面的答案可以参考下。

首先要却这个界面的布局,是AbsoluteLayout,RelativeLayout还是其他,然后就可以再里面添加控件了:

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState)

//确定界面的布局

AbsoluteLayout abslayout=new AbsoluteLayout (this)

setContentView(abslayout)

//创建一个button按钮

Button btn1 = new Button(this)

btn1.setText(”this is a button”)

btn1.setId(1)

//确定这个控件的大小和位置

AbsoluteLayout.LayoutParams lp1 =

new AbsoluteLayout.LayoutParams(

ViewGroup.LayoutParams.WRAP_CONTENT,

ViewGroup.LayoutParams.WRAP_CONTENT,

0,100)

abslayout.addView(btn1, lp1 )

}

一个界面可以布置一个布局,可以多个布局一起设计:

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState)

//设置界面的布局

RelativeLayout relativeLayout = new RelativeLayout(this)

setContentView(relativeLayout)

//添加一个AbsoluteLayout子布局,并给这个布局添加一个button

AbsoluteLayout abslayout=new AbsoluteLayout (this)

abslayout.setId(11)

Button btn1 = new Button(this)

btn1.setText(”this is a abslayout button”)

btn1.setId(1)

AbsoluteLayout.LayoutParams lp0 = new AbsoluteLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,

ViewGroup.LayoutParams.WRAP_CONTENT,100,0)

abslayout.addView(btn1, lp0 )

//将这个子布局添加到主布局中

RelativeLayout.LayoutParams lp1 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)

lp1.addRule(RelativeLayout.ALIGN_PARENT_TOP)

lp1.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE)

relativeLayout.addView(abslayout ,lp1)

//再添加一个子布局

RelativeLayout relativeLayout1 = new RelativeLayout(this)

Button btn2 = new Button(this)

btn2.setText(”this is a relativeLayout1 button”)

btn2.setId(2)

RelativeLayout.LayoutParams lp2 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)

lp2.addRule(RelativeLayout.ALIGN_PARENT_TOP)

lp2.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE)

relativeLayout1.addView(btn2 ,lp2)

//将这个布局添加到主布局中

RelativeLayout.LayoutParams lp11 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)

lp11.addRule(RelativeLayout.BELOW ,11)

relativeLayout.addView(relativeLayout1 ,lp11)

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11187272.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存