我是Android新手并注意到在创建TabHost
时LinearLayout
包含FrameLayout
和TabWidget
时,声明顺序非常重要。例如,如果我使用:
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp">
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5dp" />
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
... TabWidet
永远不会显示,因为FrameLayout
会占用整个空间。但如果我先声明TabWidget
:
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5dp" />
</LinearLayout>
...两者都显示但是TabWidget
位于顶部而不是底部,这是我想要的。
所以,我想知道是否有layout_height
规范或其他属性可以“保证”在考虑其他元素之前,某个元素在其全高度呈现。
答案 0 :(得分:0)
在你的第一个例子中,你告诉框架布局要根据他所拥有的内容的多少来获取所需的高度:
android:layout_height = "wrap_content"
我认为他没有留下TabWidget的空间。
您的问题的答案是:
android:layout_(dimension) = "fill_parent"
这个占据了整个空间。