LinearLayout空间分布

时间:2012-04-22 03:39:32

标签: android android-layout

我有一个复杂的布局情况,其中水平LinearLayout包含另外两个LinearLayout。这些布局的内容是动态的,可以是任何类型的视图,并在运行时从不同的独立源生成。

我希望只要有足够的空间就显示它们,并将其限制为可用空间的50%。所以我希望那些孩子LinearLayout在有足够空间时拥有layout_width="wrap_content",而在没有空间时{}} layout_weight="0.5"<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:orientation="horizontal" android:padding="2dp" > <LinearLayout android:id="@+id/title_frame" android:layout_width="wrap_content" android:layout_height="48dp"/> <LinearLayout android:id="@+id/options_frame" android:layout_width="wrap_content" android:layout_height="48dp"/> </LinearLayout> 这意味着空间分布可以是10-90,25-75,60-40;当没有足够的空间来显示两个视图的整个内容时,它只会是50-50。到目前为止,我还没有找到一种方法从XML中做到这一点,所以我是从代码中做到的。我的问题是,我可以仅使用XML属性实现我想要的吗?一种不同的布局能够做到吗?

这是我当前的布局XML:

{{1}}

3 个答案:

答案 0 :(得分:2)

试试这个。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:orientation="horizontal"
    android:padding="2dp" >

    <LinearLayout
        android:id="@+id/title_frame"
        android:layout_width="wrap_content"
        android:layout_height="48dp" android:layout_weight="1">

    </LinearLayout>

    <LinearLayout
        android:id="@+id/options_frame"
        android:layout_width="wrap_content"
        android:layout_height="48dp" android:layout_weight="1">

    </LinearLayout>

</LinearLayout>

我尝试使用textviews,这应该符合要求。

答案 1 :(得分:1)

看起来这只能使用XML属性来实现。

答案 2 :(得分:0)

在使用权重概念时,将layout_width =“wrap_content”更改为layout_width =“fill_parent”。