如何强制LinearLayout中的元素显示其内容 - 即使之前的元素有fill_parent参数?

时间:2013-11-11 14:15:49

标签: android view android-linearlayout

我总是在努力应对这些布局:

[AnyCustomViewWhichShouldTakeAllLeftSpace |视图|]

[视图1 | AnyCustoViewWhichShouldTakeAllLeftSpace |视图2]

如果AnyCustoViewWhichShouldTakeAllLeftSpace具有参数match_parent或fill_parent,则View或View2不可见,因为没有剩余空间。

有人建议给CustomView赋予1的权重,只是为了让这个视图最终呈现。但这并不适用于所有情况。

Android中是否有像XAML / C#/ WPF中的任何内容?例如width = *(takeAllWhatYouGet,但不是更多)

任何良好的布局结构的好教程都可以解决这个明显的问题吗?

2 个答案:

答案 0 :(得分:1)

尝试使用以下代码

<LinearLayout 
    android:id="@+id/container"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <View
        android:id="@+id/view1"
        android:layout_width="fill_parent"
        android:layout_height="100px"
        android:background="#ff0000"/>

    <View
        android:id="@+id/emptyView"
        android:layout_width="fill_parent"
        android:layout_height="100px"
        android:layout_weight="1"/>

    <View
        android:id="@+id/view2"
        android:layout_width="fill_parent"
        android:layout_height="100px"
        android:background="#0000ff"/>

</LinearLayout>

渲染view1view2

后,中间视图将占用剩余的空间

答案 1 :(得分:0)

您能详细说明在重量为1的CustomView不适用于哪种情况下? 假设View 1&amp;视图2是固定高度,以下工作。

<LinearLayout 
    android:id="@+id/container"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

    <View
        android:id="@+id/view1"
        android:layout_width="fill_parent"
        android:layout_height="100px"
        android:background="#ff0000"
         />

    <View
        android:id="@+id/customview
        android:layout_width="fill_parent"
        android:background="#00ff00"
        android:layout_weight="1"
         />

    <View
        android:id="@+id/view2"
        android:layout_width="fill_parent"
        android:layout_height="100px"
        android:background="#0000ff"
         />
</LinearLayout>