1.relativelyLayout布局
这是一个相对布局,既可以跟父级的容器相对,也可以跟子元素相对。
跟子元素想对的时候,则如果子元素移动,该元素也会移动,相对位置不变。
一定要注意绝对不能将两个部件互相相对位置,否则会有exception出现。
2.frameLayout布局
这个布局所有的元素,始终在布局的左上角,不管插入多少个元素,都会在suoshangjia左上角出现。
运行效率较高,如果你的子元素不需要移动,这个比较好。
activity在创建的时候,自动生成一个根布局,即为FrameLayout(帧布局),以后建立的xml文件的布局,都加入到其中。但是一般不涉及到在它上面更改元素。
3.linearLayout布局、
子元素会按照水平或垂直一个一个排列在一起。
这个布局会有一个weight的概念,通过设置这个值,会形成一个比例,这几个子元素就是按这个比例去划分所有的水平或垂直的空间
4.tableLayout布局
就是水平线性和垂直线性的组合,应用的时候可能需要添加子容器,但是比较简单容易。
动态地增加子元素
我们首先先声明一个button类型的对象,这就是c++和Java的区别,Java声明和定义可以是两步而且全是动态地生成对象,且有回收机制,之后我们在通过findviewbyid方法使得父类的容器能够和一个layout对象想联系,之后我们只需要在layout中加入button即可,同时还可以用方法来调整button的大小及位置
btn=new Button(this);
btn.setText("第"+i+"个按钮");
b_layout.addView(btn,-2,-2);
动态地删除子元素
我们只需要加一个listener就好,一旦执行这个监听器我们只要,调用父类容器的方法remove()即可。加监听器的方法有很多,删除也可以随便删,我们这里就是点那个按钮就删除那个按钮了
private OnClickListener listener =new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
b_layout.removeView(v);
}
};
<XXXXX></XXXXX>中间可以插入孩子
如果不需要子元素,则可以直接简单地写成<XXXXX/>
常用属性简介:
android:width/height=""确定大小
match_parent或fill_parent就是和父类元素一样大的
wrap_content自适应,选择一个较好地大小适应内容。
按比例放占有空间:
XXXdp控制控件的大小
XXXsp控制文字的大小
android:background=""设置颜色
#XXXXXXX6个16进制的数.
不同控件之间加入空隙:
marginTop:是用来控制自己与别的控件之间的空隙。
padding:是用来控制自己内部各个子元素之间的空间大小的问题。