我相信我错过了一些简单的东西...
背景:
我是Android和UI设计的新手,我只是想玩一下布局。现在我想把复选框叠在文本标签上面。我正在使用以下XML布局,运行良好:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<CheckBox android:id="@+id/check_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/check_box_text" />
<TextView android:id="@+id/dummy_display"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/dummy_label" />
</LinearLayout>
我的测试(只是为了感受一下事情的运作方式):
场景1)当我将
CheckBox
的layout_height
设置为"fill_parent"
时,CheckBox
占据整个屏幕并居中对齐(即-TextView
消失)。场景2)如果我相反地将
TextView
的layout_height
设置为"fill_parent"
,CheckBox
不会消失。实际上,没有任何东西消失,布局与上面的xml文件相同,其中所有内容都被推到左上角。
问题(和评论):
为什么场景1的工作方式是这样的?
这种行为对我来说似乎是不一致的。我认为fill_parent
只应该让元素填满父级中可用的任何空间。因此,对我来说,TextView
应该获得它所需的任何空间(因为它是wrap_content
),但是CheckBox
应该占据其余的空间(因此TextView
将被强制到屏幕底部,但不是不可见)。换句话说……场景2对我来说是有道理的,但场景1没有。
请解释一下 :-)。
谢谢,
汤姆