一、基础知识:

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

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

  1. 【Android开发学习笔记之一】5大布局方式详解

    Android中常用的5大布局方式有以下几种: 线性布局(LinearLayout):按照垂直或者水平方向布局的组件. 帧布局(FrameLayout):组件从屏幕左上方布局组件. 表格布局(Tabl ...

  2. Android用表格布局做菜单栏,Android开发菜单布局之表格布局示例

    本文实例讲述了android开发菜单布局之表格布局.分享给大家供大家参考,具体如下: 多用于静态菜单页面 xml代码 代码内带详细解释 xmlns:android="http://schem ...

  3. Android学习|布局——GridLayout 表格布局_(可行、列合并)

    Android学习|布局--GridLayout 表格布局 一.GridLayout 行.列 都可以进行合并 二.常见属性 三.子控件属性 四.Demo 1.常见属性Demo 2.子控件属性Demo ...

  4. android表格布局bottom,Android基础_2 Activity线性布局和表格布局

    在activity的布局中,线性布局和表格布局是最简单的,这次分别从线性布局,表格布局以及线性布局和表格混合布局做了实验,实验中只需要编写 相应的xml的代码,java代码不需要更改,因为我们这里只是 ...

  5. Android 开发学习笔记

    Android 开发学习笔记 Lesson1 (2.28) android之父: Andy Rubin(安迪 鲁宾) Lesson2 (3.3) android 的优点: 开放.网络接入自由.丰富的硬 ...

  6. android开发学习之路——连连看之游戏逻辑(五)

    GameService组件则是整个游戏逻辑实现的核心,而且GameService是一个可以复用的业务逻辑类. (一)定义GameService组件接口 根据前面程序对GameService组件的依赖, ...

  7. Android开发学习之基于ViewPager实现Gallery画廊效果

    通过我们前面的学习,我们知道ViewPager是可以做出近乎完美的滑动体验,回顾整个Android,我们发现Gallery具备同样的特点,于是我们大胆地猜想,Gallery是否和ViewPager之间 ...

  8. Android开发学习持续更新中

    Android开发 单个Activity界面内的操作 控件1TextView控件使用 控件2Button控件使用 1首先对于android的按键格式 2对按键监听事件进行绑定 控件3EditText文 ...

  9. Android的布局管理--表格布局

    Android的布局管理–表格布局 在校期间想过自学这个,但是最后选择了学习前端,以下知识点并不记得了 表格布局(TableLayout)是以表格形式排列控件的,通过行和列将界面划分为多个单元,每个单 ...

最新文章

  1. 图片1---前馈神经网络+反向传播神经网络
  2. BCGSoft Demo示例展示:菜单示例集合(2/2)
  3. php post数据丢失
  4. 我的世java途径错误_我的世界JAVA路径错误的解决方法分享
  5. C异常处理机制:setjmp和longjmp
  6. gperftools
  7. python工资高还是java-Python工资高还是Java?
  8. 将object类型转换成时间,如果能转的话。
  9. 网卡驱动程序igb和ixgbe
  10. [渝粤教育] 武汉大学 自然科学经典导引 参考 资料
  11. matlab局部放大找交点,11.matlab找两条离散曲线的交点
  12. 逻辑漏洞之任意密码重置
  13. python飞机大战源码素材包_python(pygame)滑稽大战(类似飞机大战) 教程
  14. 1.ROS编程学习:helloworld的c++与python实现
  15. 计算机二级考试内容是什么
  16. 第二讲:线性结构-Go语言实现
  17. 使用Logstash接收Netflow日志并发送到syslog服务器
  18. 用Python实现DT算法
  19. JUC之Callable接口
  20. iOS 开发第三方库全集

热门文章

  1. 机器视觉学习笔记--图像滤波1
  2. Android仿苹果iphone数字锁屏解锁功能
  3. 如何选购汽车线束检测仪,需要考虑哪些因素
  4. 短小精悍的视频拍摄利器-Winavi Video Capture 绿色版
  5. flask markdown 报错解决
  6. 初中计算机教学校本教材,中学信息技术校本教材  (38页)-原创力文档
  7. Vue学习笔记(二):购物街开发
  8. Android-插入短信及备份手机中的短信到SD卡
  9. 徐老师的回家之路(广搜最难题)
  10. C++沉思录上提到的一道练习题及其源码实现