Android開發之表格版面配置

來源:互聯網
上載者:User

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

另外,TableLayout之上也可以單獨放控制項。TableLayout是一個使用複雜的布局,最簡單的用法就僅

僅是拖拉控制項做出個介面,但實際上,會經常在代碼裡使用TableLayout,例如做出表格的效果。

 

android:collapseColumns:以第0行為序,隱藏指定的列

android:shrinkColumns:以第0行為序,自動延伸指定的列填充可用部分

android:stretchColumns:以第0行為序,盡量把指定的列填充空白部分

 

二、方案一代碼展示:

方案一採用xml布局,在代碼中除了顯示layout之外,未作任何布局相關的操作。

1."Acticity_06srcyanacticity_06MainActivity.java"

[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);   

    } 

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_06reslayoutactivity_main.xml"

[html] 

<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> 

<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_06srcyanacticity_06MainActivity.java"

[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));   

        }   

    } 

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_06reslayoutactivity_main.xml"

[html]

<?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>   

<?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.方案二:

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.