0

我总是在这些布局方面苦苦挣扎:

[AnyCustomViewWhichShouldTakeAllLeftSpace|View|]

[View1|AnyCustoViewWhichShouldTakeAllLeftSpace|View2]

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

有人建议给 CustomView 赋予 1 的权重,只是为了让这个视图最终呈现出来。但这并不是在所有情况下都有效。

Android 中是否有类似 XAML/C#/WPF 的内容?例如 width=* (takeAllWhatYouGet, but NOT more)

任何处理这种明确类型问题的良好布局结构的好教程?

4

2 回答 2

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>

中间视图将占据渲染后剩余的view1空间view2

于 2013-11-12T04:53:51.757 回答
0

您能否详细说明在哪些情况下权重为 1 的 CustomView 不适合您?假设 View 1 & View 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>
于 2013-11-11T14:36:18.710 回答