两个小部件在线性布局中紧挨着另一个小部件

时间:2012-09-10 18:13:48

标签: android android-layout android-spinner

我感觉很难实现,两个小部件(比如微调器)在线性布局中彼此相邻。我的意思是两个微调器的布局高度是包裹内容,但宽度应该是第一个微调器的前半部分,屏幕的后半部分到第二个微调器。在线性布局中,它们一个接一个。我在相对布局中尝试过,但是当我给出宽度作为wrap_content时,它们彼此相邻,但是很多空间仍然是第二个微调器。我已经在很少的应用程序中看到了这个问题,但是我没有得到它。

enter image description here

4 个答案:

答案 0 :(得分:8)

使用layout_weight。这将迫使两个微调器占据每个空间的一半。

<LinearLayout
    android:orientation="horizontal"
    ... >

    <Spinner
        android:layout_height="wrap_content"
        android:layout_width="0dp"
        android:layout_weight="1"
        ... />

    <Spinner
        android:layout_height="wrap_content"
        android:layout_width="0dp"
        android:layout_weight="1"
        ... />

</LinearLayout>

答案 1 :(得分:0)

有一天我遇到了同样的问题。我也采取了很多不同的技巧来让它发挥作用。我结束了将两个微调器放在他们自己的布局中。很奇怪,但它确实有效。

答案 2 :(得分:0)

相对布局用于放置彼此相关的视图。它与它们的尺寸无关。

对于linearLayout,将两个视图的高度/宽度(取决于布局的方向)设置为0px,将权重设置为1。这将使每个占用一半的空间。

答案 3 :(得分:0)

<?xml version="1.0" encoding="utf-8"?>

<Spinner
    android:id="@+id/spinner1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:entries="@array/testArray" />

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/background_light"
    android:orientation="horizontal" >

    <Spinner
        android:id="@+id/spinner2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:entries="@array/testArray" />

    <Spinner
        android:id="@+id/spinner3"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1" />
</LinearLayout>     
</LinearLayout>