1、概述
布局管理器的用途:
1、可以更好的管理组件;
2、通过使用布局管理器,Android应用程序可以做到平台无关性
布局管理器都是ViewGroup的子类,而ViewGroup也是View的子类
常用布局管理器的分类:
线性布局管理器,表格布局管理器,相对布局管理器,绝对布局管理器,祯布局管理器
下面分别介绍常用的布局管理器
2、线性布局管理器
LinearLayout,最常用的布局之一。它提供控件水平或垂直排列的模型
常用属性及其对应方法:
gravity 可取属性说明:
当需要为gravity设多个值时,可用|分隔开
实例:
布局代码
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:orientation="vertical" 4 android:layout_width="fill_parent" 5 android:layout_height="fill_parent" 6 android:id="@+id/lla" 7 android:gravity="right" 8 > 13 <!-- 声明一个 LinearLayout 布局,并设置其属性 --> 14 15 <Button 16 android:text="添加" 17 android:id="@+id/Button01" 18 android:layout_width="wrap_content" 19 android:layout_height="wrap_content"> 20 </Button> 21 24 <!-- 声明一个 Button 布局,并设置其 id 为 Button01 --> 25 </LinearLayout>
Activity代码:
1 package com.example.layout; 2 3 import android.app.Activity; 4 import android.os.Bundle; 5 import android.view.View; 6 import android.widget.Button; 7 import android.widget.LinearLayout; 8 9 public class MainActivity extends Activity { 10 11 int count = 0; 12 13 // 计数器,记录按钮个数 14 @Override 15 public void onCreate(Bundle savedInstanceState) { // 重写 onCreate 方法 16 super.onCreate(savedInstanceState); 17 setContentView(R.layout.horizontal_layout); 18 Button button = (Button) findViewById(R.id.Button01); 19 20 // 获取屏幕中的按钮控件对象 21 button.setOnClickListener( 22 // 为按钮添加 OnClickListener 接口实现 23 24 new View.OnClickListener() { 25 26 public void onClick(View v) { 27 28 LinearLayout ll = (LinearLayout) findViewById(R.id.lla); 29 30 // 获取线性布局对象 31 32 String msg = MainActivity.this.getResources().getString( 33 R.string.button); 34 35 Button tempbutton = new Button(MainActivity.this); 36 37 // 创建一个 Button 对象 38 39 tempbutton.setText(msg + (++count)); // 设置 Button 控件显示的内容 40 41 tempbutton.setWidth(80); 42 43 // 设置 Button 的宽度 44 45 ll.addView(tempbutton); 46 47 // 向线性布局中添加 View 48 49 } 50 51 }); 52 53 } 54 }
运行效果:每点击添加按钮一次会在下方垂直生成一个按钮
将布局文件中
android:orientation="vertical"
vertical改为horizontal
每点击一次会在右方水平方向生成一个按钮
当水平方向该行容不下一个宽度为80的按钮时,按钮就会被压缩,如下图
此时再点击添加按钮时,画面没有任何变化,不会另起一行添加按钮,超出屏幕的将不会被显示。
3、表格布局
留题占座,明天再写