Android 布局详解 -三表格布局(TableLayout)以及重要属性

三表格布局(TableLayout)以及重要属性

 

          TableLayout跟TableRow 是一组搭配应用的布局,TableLayout置底,TableRow在TableLayout的上方,而Button、TextView等控件就在TableRow之上,别的,TableLayout之上也可以零丁放控件。TableLayout是一个应用错杂的布局,最简单的用法就仅仅是拖沓控件做出个界面,但实际上,会经常在代码里应用TableLayout,例如做出表格的结果。本文首要介绍TableLayout的根蒂根基应用办法。        

重要的几个属性如下:

 1.android:collapseColumns://隐藏指定的列
        ①设置 TableLayout 内的 TableRow 中需要隐藏的列的列索引,多个用“,”隔开 
        ②以第0行为序,隐藏指定的列:把android:collapseColumns=0,3 意思是把第0和第3列隐藏

 
    2.android:shrinkColumns://收缩指定的列以适合屏幕、不会挤出屏幕                                     ① 设置 TableLayout 内的 TableRow 中需要拉伸(该列会拉伸到所有可用空间)的列的列索引,多列个用“,”隔开(多列 每列填充空隙大小一样)
       ②以第0行为序,自动延伸指定的列填充可用部分: 当LayoutRow里面的控件还没有布满布局时,shrinkColumns不起作用。
     ③设置了shrinkColumns=1,4,布局完全没有改变,因为LayoutRow里面还剩足够的空间。当LayoutRow布满控件时,设置了shrinkColumns=2,5,则控件自动向垂直方向填充空间

3.android:stretchColumns://尽量把指定的列表填充空白部分

①设置 TableLayout 内的 TableRow 中需要收缩(为了使其他列不会被挤到屏幕 外,此列会自动收缩)的列的列索引,多个用“,”隔开

② 以第0行为序,尽量把指定的列填充空白部分:设置stretchColumns=2,5,第1,4列被尽量填充同时向右填充,直到2,5被压挤到最后边)。

补充:

①表格布局的子对象不能指定 layout_width 属性.宽度永远是 MATCH_PARENT。

②不过子对象可以定义 layout_height 属性;其默认值是WRAP_CONTENT. 如果子对象是 TableRow,其高度永远是 WRAP_CONTENT

实例:

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical"

    tools:context=".AndroidTableLayoutActivity" >

    <!-- 定义第一个表格,指定第2列允许收缩,第3列允许拉伸 -->

    <TableLayout

        android:id="@+id/tablelayout01"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:shrinkColumns="1"

        android:stretchColumns="2" >

        <!-- 直接添加按钮,自己占用一行 -->

        <Button

            android:id="@+id/btn01"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="独自一行" >

        </Button>

        <TableRow>

            <Button

                android:id="@+id/btn02"

                android:layout_width="wrap_content"

                android:layout_height="wrap_content"

                android:text="普通" >

            </Button>

            <Button

                android:id="@+id/btn03"

                android:layout_width="wrap_content"

                android:layout_height="wrap_content"

                android:text="允许被收缩允许被收缩允许被收缩允许被收缩" >

            </Button>

            <Button

                android:id="@+id/btn04"

                android:layout_width="wrap_content"

                android:layout_height="wrap_content"

                android:text="允许被拉伸允许被拉伸允许被拉伸" >

            </Button>

        </TableRow>

    </TableLayout>

    <!-- 定义第2个表格,指定第2列隐藏 -->

    <TableLayout

        android:id="@+id/tablelayout02"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:collapseColumns="1" >

        <TableRow>

            <Button

                android:id="@+id/btn05"

                android:layout_width="wrap_content"

                android:layout_height="wrap_content"

                android:text="普通" >

            </Button>

            <Button

                android:id="@+id/btn06"

                android:layout_width="wrap_content"

                android:layout_height="wrap_content"

                android:text="被隐藏列" >

            </Button>

            <Button

                android:id="@+id/btn07"

                android:layout_width="wrap_content"

                android:layout_height="wrap_content"

                android:text="允许被拉伸" >

            </Button>

        </TableRow>

    </TableLayout>

    <!-- 定义第3个表格,指定第2列填满空白 -->

    <TableLayout

        android:id="@+id/tablelayout03"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:stretchColumns="1" >

        <TableRow>

            <Button

                android:id="@+id/btn08"

                android:layout_width="wrap_content"

                android:layout_height="wrap_content"

                android:text="普通" >

            </Button>

            <Button

                android:id="@+id/btn09"

                android:layout_width="wrap_content"

                android:layout_height="wrap_content"

                android:text="填满剩余空白" >

            </Button>

        </TableRow>

    </TableLayout>

    <!-- 定义第3个表格,指定第2列横跨2列 -->

    <TableLayout

        android:id="@+id/tablelayout04"

        android:layout_width="match_parent"

        android:layout_height="wrap_content" >

        <TableRow>

            <Button

                android:id="@+id/btn10"

                android:layout_width="wrap_content"

                android:layout_height="wrap_content"

                android:text="普通" >

            </Button>

            <Button

                android:id="@+id/btn11"

                android:layout_width="wrap_content"

                android:layout_height="wrap_content"

                android:layout_column="2"

                android:text="填满剩余空白" >

            </Button>

        </TableRow>

    </TableLayout>

</LinearLayout>

时间: 2024-10-02 15:58:46

Android 布局详解 -三表格布局(TableLayout)以及重要属性的相关文章

android动画详解三 动画API概述

· 属性动画与view动画的不同之处 view动画系统提供了仅动画View 对象的能力,所以如果你想动画非View 对象,你就要自己实现代码. view动画系统实际上还被强制仅能对 View 的少数属性进行动画,比如缩放和旋转,而不能对背景色进行. view动画的另一个坏处是它仅修改View的绘制位置,而不是View的实际位置.例如,如果你动画一个移动穿越屏幕,button的绘制位置是正确的,但实际你可以点击它的位置却没有变,所以你必须去实现你自己的逻辑来处理它. 使用属性动画系统时,这个限制被

Android Scroll详解(三):Android 绘制过程详解

作者: ztelur 联系方式:segmentfault,csdn,github 本文转载请注明原作者.文章来源,链接,版权归原文作者所有. ?本篇为Android Scroll系列文章的最后一篇,主要讲解Android视图绘制机制,由于本系列文章内容都是视图滚动相关的,所以,本篇从视图内容滚动的视角来梳理视图绘制过程. ?如果没有看过本系列之前文章或者不太了解相关的知识,请大家阅读一下一下的文章: Android MotionEvent详解 Android Scroll详解(一):基础知识 A

Html5移动端页面自适应布局详解(阿里rem布局)

在移动设备上进行网页的重构或开发,首先得搞明白的就是移动设备上的viewport,通读网上的各种对于viewport的解释之后 大概viewport可以理解为三种 1.layout viewport ,也就是这个浏览器默认的viewport 2.visual viewport  , 浏览器可视区域viewport 3. ideal viewport  ,移动设备的理想viewport 通俗点讲,pc端css中的1px并不会等于移动端,原理很简单,举个例子说 通过chrome浏览器可以知道,一个I

Android ActionBar详解(三):ActionBar实现切换Tabs标签

实现切换Tabs标签; Activity代码: public class ActionBarTabs extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.action_bar_tabs); } public void onAddTab(View v) { final 

【转】Android编译系统详解(三)——编译流程详解

原文网址:http://www.cloudchou.com/android/post-276.html 本文原创作者:Cloud Chou. 欢迎转载,请注明出处和本文链接 1.概述 编译Android的第三步是使用mka命令进行编译,当然我们也可以使用make –j4,但是推荐使用mka命令.因为mka将自动计算-j选项的数字,让我们不用纠结这个数字到底是多少(这个数字其实就是所有cpu的核心数).在编译时我们可以带上我们需要编译的目标,假设你想生成recovery,那么使用mka recov

Android Fragment详解(三): 实现Fragment的界面

为fragment添加用户界面: Fragment一般作为activity的用户界面的一部分,把它自己的layout嵌入到activity的layout中. 一个 要为fragment提供layout,你必须实现onCreateView()回调方法,然后在这个方法中返回一个View对象,这个对象是fragment的layout的根.     注:如果你的fragment是从ListFragment中派生的,就不需要实现onCreateView()方法了,因为默认的实现已经为你返回了ListVie

Android 布局详解

Android 布局详解 1.重用布局 当一个布局文件被多处使用时,最好<include>标签来重用布局. 例如:workspace_screen.xml的布局文件,在另一个布局文件中被重复使用三次,那么可使用如下的布局代码: <LinearLayout androd:layout_width=”fill_parent” androd:layout_height=”fill_parent” > <!-- 引用三次workspace_screen --> <incl

android动画详解四 创建动画

· 使用ValueAnimator进行动画 通过指定一些int, float或color等类型的值的集合,ValueAnimator 使你可以对这些类型的值进行动画.你需通过调用ValueAnimator 的某个工厂方法来获得一个ValueAnimator 对象,比如:ofInt(), ofFloat(), 或 ofObject().例如: ValueAnimator animation = ValueAnimator.ofFloat(0f, 1f); animation.setDuration

New UI-布局之TableLayout(表格布局)详解

New UI-布局之TableLayout(表格布局)详解  --转载请注明出处:coder-pig,欢迎转载,请勿用于商业用途! 小猪Android开发交流群已建立,欢迎大家加入,无论是新手,菜鸟,大神都可以,小猪一个人的 力量毕竟是有限的,写出来的东西肯定会有很多纰漏不足,欢迎大家指出,集思广益,让小猪的博文 更加的详尽,帮到更多的人,O(∩_∩)O谢谢! 小猪Android开发交流群:小猪Android开发交流群群号:421858269 新Android UI实例大全目录:http://b