TableLayout就是将手机的屏幕分为一行行的形式进行数据的显示,并且一行可以多个控件
并且可以设置控件的对齐方式,和是否为可收缩行
下面通过一行图和一个简单的例子来看看Tablelayout布局的使用
…………………………………………………………毫无美感的分割线…………………………………………………………
单独使用xml文件进行配置
<?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:shrinkColumns="3">//第三行允许行合并 <TableRow> <TextView android:id="@+id/text01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="用户名" /> <EditText android:id="@+id/edit01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="10" > <requestFocus /> </EditText> </TableRow> <TableRow> <TextView android:id="@+id/text02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="密 码" /> <EditText android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="10" android:inputType="textPassword" /> </TableRow> <TableRow android:gravity="center"> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="登录系统" /> </TableRow> </TableLayout>运行效果图
从上面的运行效果大家可以很清楚地看到,第一行第二行分别显示了两个组件,第三行显示了一个组件,并设置了剧中对齐的效果。
…………………………………………………………毫无美感的分割线…………………………………………………………
动态布局的方式实现。
package com.example.tablelayout; import android.app.Activity; import android.os.Bundle; import android.view.Gravity; import android.view.ViewGroup; import android.widget.Button; import android.widget.EditText; import android.widget.TableLayout; import android.widget.TableRow; import android.widget.TextView; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // setContentView(R.layout.tablelayout); TableLayout layout = new TableLayout(this);//创建Tablelayout对象 // 设置Tablelayout的对齐方式 TableLayout.LayoutParams tableTLayoutParams = new TableLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); TableRow tableRow1=new TableRow(this);//创建第一行 TableRow tableRow2=new TableRow(this);//创建第二行 TableRow tableRow3=new TableRow(this);//创建第三行 TextView textView1=new TextView(this);//创建Textview对象 textView1.setText("用户名"); EditText editText1=new EditText(this);//创建EditText对象 tableRow1.addView(textView1);//TextView设置到第一行 tableRow1.addView(editText1);//EditText设置到第一行 TextView textView2=new TextView(this);//创建Textview对象 textView2.setText("密 码"); EditText editText2=new EditText(this);//创建EditText对象 tableRow2.addView(textView2);//TextView设置到第一行 tableRow2.addView(editText2);//EditText设置到第二行 Button button=new Button(this); button.setText("登录系统"); tableRow3.setGravity(Gravity.CENTER);//设置第三行九中对齐 tableRow3.addView(button); layout.addView(tableRow1);//将第一行数据添加到布局当中 layout.addView(tableRow2);//将第二行数据添加到布局当中 layout.addView(tableRow3);//将第三行数据添加到布局当中 super.setContentView(layout,tableTLayoutParams); } }
动态布局同样可以实现xml布局实现的效果
下节预报:相对布局RelativeLayout