0

我有一个 LinearLayout,其中有一个微调器和一个图像按钮。我希望微调器在左侧屏幕上,图像按钮在右侧屏幕上(并且都在同一屏幕上)。这是我的布局:

<LinearLayout
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:orientation="horizontal">

        <Spinner
            android:layout_height="wrap_content"
            android:layout_width="fill_parent"
            android:layout_alignParentTop="true"
            android:id="@+id/spinner_method_list"></Spinner>

        <ImageButton
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/ic_menu_refresh"/>

    </LinearLayout>

在上面的代码中,我认为 make ImageButtonwith layout_weight is 1 会起作用,但实际上不会。请告诉我如何设计这个布局。

谢谢 :)

4

1 回答 1

2

首先,android:layout_alignParentTop="true"不是LinearLayoutonly的属性RelativeLayout。其次,layout_weight在 a中使用时horizontal LinearLayoutlayout_width应该是 0dp,layout_height在 a中应该是 0dp vertical LinearLayout

使用 a LinearLayout,实现此目的的一种方法是在这里给每个Viewa layout_weight,比如说 1 然后View在中间创建一个 aweight可能为 2 的第二个,但您需要与那些一起玩才能得到您想要的。

<LinearLayout
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:orientation="horizontal">

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

    <View
        android:layout_height="match_parent"
        android:layout_width="0dp"
        android:layout_weight="2"/>

    <ImageButton
        android:layout_height="wrap_content"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:background="@drawable/ic_menu_refresh"/>

</LinearLayout>

一个可能更好的方法是使用 aRelativeLayout并使用它的属性alignParentLeftand alignParentRight。就像是

<RelativeLayout
    android:layout_height="wrap_content"
    android:layout_width="match_parent">

    <Spinner
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_alignParentLeft="true"   <!-- here  -->
        android:id="@+id/spinner_method_list"/>

    <ImageButton
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:background="@drawable/ic_menu_refresh"
        android:layout_alignParentRight="true"/>    <!-- and here  -->

</RelativeLayout>

如果您希望它们各自占据屏幕的一半,那么您可以只给每个layout_weight“1”和layout_width“0dp”。

于 2013-10-29T02:05:41.687 回答