android-layout - 为什么 TableLayout 组件设置为同一列不对齐?
问题描述
我很确定我缺少关于 TableLayout 的一些基本知识,但是在进行了相当多的搜索和阅读之后我无法弄清楚它。这是代码:
<TableLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TableRow>
<Button android:layout_column="0" android:text="00" android:visibility="gone"/>
<Button android:layout_column="1" android:text="01"/>
</TableRow>
<TableRow>
<Button android:layout_column="0" android:text="10"/>
<Button android:layout_column="1" android:text="11"/>
</TableRow>
</TableLayout>
结果如下:
我预计按钮“01”将与按钮“11”对齐,因为它们都设置为第 1 列。有人能指出我缺少什么吗?
[编辑]如果“00”的可见性值“消失”是一个问题,为什么删除它会使其工作如下:
<TableLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TableRow>
<Button
android:layout_column="1"
android:text="01" />
</TableRow>
<TableRow>
<Button
android:layout_column="0"
android:text="10" />
<Button
android:layout_column="1"
android:text="11" />
</TableRow>
</TableLayout>
结果:
解决方案
这是因为您visibility
GONE
为Button设置了值为00,所以这就是它在layout中不占用空间的原因。
在这里您可以找到两者的用途。
View.GONE
此视图是不可见的,并且它不占用任何空间layout
。
View.INVISIBLE
这个视图是不可见的,但它仍然占用空间layout
。
因此,只需将值00的可见性更改为不可见,就可以按预期工作。Button
<TableLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TableRow>
<Button
android:layout_column="0"
android:text="00"
android:visibility="invisible" />
<Button
android:layout_column="1"
android:text="01" />
</TableRow>
<TableRow>
<Button
android:layout_column="0"
android:text="10" />
<Button
android:layout_column="1"
android:text="11" />
</TableRow>
</TableLayout>
希望这会帮助你。
推荐阅读
- amazon-web-services - 如何在无服务器框架 YAML 中使用 Fn::Join?
- android - Gradle 同步失败 - 其他各种库正在请求 play-services-measurement-base
- python - 安装 gdsCAD 的问题
- python - 如何从 for 循环的结果中创建一个列表
- node.js - `require("module");` 与 `require("module").function;` 的区别
- scala - scala - 使用地图列表传播rdd
- jquery - 如何使用jQuery区分嵌套元素标签的点击功能?
- reactjs - 如何处理 TypeScript 中 Redux 的两个 configureStore 文件(多个 module.exports)?
- spring - Lombok 生成的代码在覆盖率上不容忽视
- docker - Docker - 环境变量问题