Android编程基础:表布局
布局是视图对象在移动设备屏幕上的排列方式。在Android中,布局对于设计很重要。由于手机的屏幕尺寸有限,您需要这些布局,以避免浪费空间。在调整视图对象时,每一寸空间都很重要。布局用于有效地调整屏幕上的对象。布局对于良好的设计和流畅的界面很重要。它可以防止对象重叠,避免屏幕上不必要的阻塞。布局是在XML文件中描述的。
表布局属性
- 折叠列:这是要折叠的列的从零开始的索引。列索引用逗号分隔:1,2,4。但是,不合法和重复的列索引将被忽略。
- ShrinkColumns:基于零的列索引缩小。所有列都可以使用“*”值缩小。
- 要扩展的列的从零开始的索引。所有列都可以使用“*”值进行扩展
TableLayout和公共方法:
- addView():添加子视图
- generateLayoutParams():根据提供的属性集返回新的布局参数。
- iscolumncollapse():返回列的折叠状态
- Iscolumnshrinkable():返回列是否可收缩
- isColumnStrechable():返回列是否可伸缩
- isShrinkAllColumns():指示是否所有列都是可收缩的
- isstretchallcolumns():指示所有列是否可伸展
- OnInitializeAccessibilityEvent():初始化导致事件发生的视图的访问权限。
- OnInitializeAccessilityNodeInfo():它初始化了导致事件发生的视图的AccessBilityNodeInfo。
- requestLayout():当布局在视图中无效时调用
- setStrechAllCoulmns():标记所有可伸缩的列
- setshrinkallcolumns():标记所有列可收缩
- setOnHierarchyChangeListener():当从视图中添加或删除子元素时注册一个回调函数。
例如
< ?xml version = " 1.0 " encoding = " utf - 8 " ?> < TableLayoutxmlns: android = " http://schemas.android.com/apk/res/android " android: id =“@ + id / table1”android: layout_width =“宽和”android: layout_height =“宽和”> < TableRow android: id =“@ + id /第一行”android: layout_width =“wrap_content”android: layout_height =“wrap_content”android:填充=“10浸”> < TextView android: id =“@ + id / View1”android:text="CELL 1" />tabelayout >
上面的示例显示了表布局的基本实现。它有四个TableRowObjects,这意味着父级表单中存在四行。使用“布局列”属性并使用此属性将视图对象放在单元格中,我们可以提及View对象的位置相对于最后一个Tablerow对象中使用的列。按钮放置在第四行的第三列中。
Android为您提供许多用于设计目的的布局:
- 线性布局
- 相对布局
- 绝对布局
- 表布局
什么是表格布局?
顾名思义,表布局以表格式(行和列)安排对象。它可以有任意数量的行,每一行都有列或单元格,每个单元格中可以放置一个对象。它建议大多数Android初学者安排视图对象。它线性地调整以行形式放置在单元格中的视图对象。表布局容器不显示边框线,由许多表行对象组成,每个对象定义一行。
列宽由每行定义,每个行具有该列中最宽的单元格。
表布局有两种方法使列可伸缩或可收缩。它们是setColumnStretchable()和setColumnShrinkable()。当列被标记为可收缩时,可以收缩列的宽度,以便将表放入其父对象中。当它被标记为可伸缩时,它会扩展列宽以适应任何额外的空间。表格的总宽度在表格布局定义中定义。列既可以收缩,也可以伸缩,在这种情况下,列的大小会改变以使用可用空间。表格的宽度或高度不会超出物理布局。此外,您可以使用columncollapse()方法来隐藏列。
要注意的一个重要因素是表布局的子项无法指定layout_width属性。宽度始终是“match_parent”,其在父对象中描述。子对象可以定义一个layout_height,默认值为“wrap_content”,但如果孩子是tablerow,则高度始终是默认值(Wrap_content)。
必须以XML和代码的越来越多的顺序添加细胞。列数基于零。数字是自动递增到下一个可用列。通常,Tablerow是表布局的子项,但您也可以使用任何View类。
语法:
............
............。
tablelayout>
表排
它始终在表布局内使用,如果它不用作表布局子,则它将表现为水平的线性光线。它有两个属性:
- layout_column:它定义了应放置孩子的列索引。
- layout_span:它定义了孩子应该跨越的列数。其值应大于或等于1。
语法:
..........
tablerow>
tablelayout>
什么是表布丁加花?
布局参数告诉应用程序的父视图有关屏幕上的位置调整。LayOutParams类定义视图高度和宽度。每次使用布局时都会分开。布局参数将子的宽度设置为“match_parent”和每个子子的高度仅在未指定高度时才“Wrap_Content”。