【Android开发学习24】界面布局之表格布局TableLayout+TableRow

最后都变了- 提交于 2019-12-07 02:04:27

一、基础知识:

 

TableLayout置底,TableRow在TableLayout的上面,而Button、TextView等控件就在TableRow之上,

另外,TableLayout之上也可以单独放控件。TableLayout是一个使用复杂的布局,最简单的用法就仅

仅是拖拉控件做出个界面,但实际上,会经常在代码里使用TableLayout,例如做出表格的效果。

 

android:collapseColumns:以第0行为序,隐藏指定的列
android:shrinkColumns:以第0行为序,自动延伸指定的列填充可用部分
android:stretchColumns:以第0行为序,尽量把指定的列填充空白部分

 

二、方案一代码展示:

方案一采用xml布局,在代码中除了显示layout之外,未作任何布局相关的操作。

1."Acticity_06\src\yan\acticity_06\MainActivity.java"

package yan.activity_06;

import android.os.Bundle;
import android.app.Activity;

public class MainActivity extends Activity {
      
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
    }
}

 

2."Activity_06\res\layout\activity_main.xml"

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    tools:context=".MainActivity"
    android:stretchColumns="0" >
 <TableRow>
        <TextView
            android:text="第一行第一列"
            android:background="#aa0000"
            android:padding="3dip" />
        <TextView
        	android:text="第一行第二列"
        	android:padding="3dip"
        	android:gravity="center_horizontal"
            android:background="#00aa00"
        	></TextView>
        <TextView
            android:text="第一行第三列"
            android:gravity="right"
            android:background="#0000aa"
            android:padding="3dip" />
    </TableRow>

    <TableRow>
        <TextView
            android:text="第二行第一列"
            android:padding="3dip" />
        <TextView
            android:text="第二行第二列"
            android:gravity="right"
            android:padding="3dip" />
    </TableRow>
    
    <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/hello_world" />

</TableLayout>


 

三、方案二代码展示:

方案二采用代码布局,在layout文件中除了显示一个空的TabLayout之外,未作任何其它布局。

1."Acticity_06\src\yan\acticity_06\MainActivity.java"

package yan.activity_06;

import android.os.Bundle;
import android.view.ViewGroup;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
import android.app.Activity;

public class MainActivity extends Activity {
	/** Called when the activity is first created. */  
    private final int WC = ViewGroup.LayoutParams.WRAP_CONTENT;  
    private final int FP = ViewGroup.LayoutParams.FILL_PARENT;  
      
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
        //新建TableLayout01的实例   
        TableLayout tableLayout = (TableLayout)findViewById(R.id.TableLayout01);  
        //全部列自动填充空白处   
        tableLayout.setStretchAllColumns(true);  
        //生成10行,8列的表格   
        for(int row=0;row<10;row++)  
        {  
            TableRow tableRow=new TableRow(this);  
            for(int col=0;col<8;col++)  
            {  
                //tv用于显示   
                TextView tv=new TextView(this);  
                tv.setText("("+col+","+row+")");  
                tableRow.addView(tv);  
            }  
            //新建的TableRow添加到TableLayout   
            tableLayout.addView(tableRow, new TableLayout.LayoutParams(FP, WC));  
        }  
    }
}


2."Activity_06\res\layout\activity_main.xml"

<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:orientation="vertical"  
    android:layout_width="fill_parent"  
    android:layout_height="fill_parent"  
    >  
     <TableLayout   
             android:id="@+id/TableLayout01"   
             android:layout_width="fill_parent"   
             android:layout_height="wrap_content">  
     </TableLayout>  
</LinearLayout>  


 


 

 

三、效果展示:

1.方案一:

 

2.方案二:

 

 

参考文章有: http://blog.csdn.net/hellogv/article/details/4523745

                      http://blog.csdn.net/hellogv/article/details/4522125

 

本文完整代码下载地址: http://download.csdn.net/detail/ypist/5144652

 

本文博客源地址:http://blog.csdn.net/ypist

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!