如何在布局xml中保证某个元素以其全高显示

时间:2012-05-14 19:11:31

标签: android android-layout android-resources

我是Android新手并注意到在创建TabHostLinearLayout包含FrameLayoutTabWidget时,声明顺序非常重要。例如,如果我使用:

<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规范或其他属性可以“保证”在考虑其他元素之前,某个元素在其全高度呈现。

1 个答案:

答案 0 :(得分:0)

在你的第一个例子中,你告诉框架布局要根据他所拥有的内容的多少来获取所需的高度:

android:layout_height = "wrap_content"

我认为他没有留下TabWidget的空间。

您的问题的答案是:

android:layout_(dimension) = "fill_parent"

这个占据了整个空间。