水平对齐时,旋转器会向下浮动

Mus*_*afa 7 android android-layout

如果我在水平LinearLayout或表行中添加微调器,例如:

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

        <EditText
            android:id="@+id/editText1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1" >
        </EditText>

        <Spinner
            android:id="@+id/spinner1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1" />
    </LinearLayout>
Run Code Online (Sandbox Code Playgroud)

旋转器漂浮下来.它浮在Android 2.2,Android 2.3和Android 3.2上,但它在Android 4.0中运行良好,他们修复了它.但有没有办法让它与其他视图对齐,如Android 2.3上的EditText.

通过浮动我的意思是:

***********************
* if EditText is here *  ************************
***********************  * Spinner will be here *
                         ************************
Run Code Online (Sandbox Code Playgroud)

Ent*_*eco 0

在线性布局中,方向是“水平”。有意义的元素并排放置。然而,您的 EditText 和 Spinner 都有 android:layout_width="fill_parent"。所以你想将 EditText 和 Spinner 并排放置,但你也希望它们 fill_parent ...

如果给你这些矛盾的条件你会怎么做?

显然,这是一个矛盾,不同版本的android对这些属性赋予了不同的优先级。

我建议将 EditText 和 Spinner 属性更改为:

<EditText
    ...
    android:layout_width="0dp"
    ... />
<Spinner
    ...
    android:layout_width="0dp"
    ... />
Run Code Online (Sandbox Code Playgroud)

并将其添加到您的 LinearLayout 中:

<LinearLayout
    android:baselineAligned="true"
    ... />
Run Code Online (Sandbox Code Playgroud)