4

我的 LinearLayour 中有一个 Spinner 和一个 TextView。

我正在尝试将 Spinner 和 TextView 垂直对齐,以使两者的中心位于同一行:

在此处输入图像描述

这是我的那个元素的 XML:

 <LinearLayout
    android:id="@+id/dropdownlayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:orientation="horizontal" >

    <Spinner
        android:id="@+id/spinner1"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_gravity="center" />

    <TextView
        android:id="@+id/ok1"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_gravity="center"
        android:background="@drawable/white_box"
        android:gravity="center"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:text="@string/ok"
        android:textColor="@android:color/black"
        android:textSize="@dimen/normale" />

</LinearLayout>

也尝试了此代码,结果相同:

  <RelativeLayout
    android:id="@+id/dropdownlayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:orientation="horizontal" >

    <Spinner
        android:id="@+id/spinner1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_gravity="center"
        android:gravity="center" />

    <TextView
        android:id="@+id/ok1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_toRightOf="@+id/spinner1"
        android:background="@drawable/white_box"
        android:gravity="center"
        android:padding="10dp"
        android:text="@string/ok"
        android:textColor="@android:color/black"
        android:textSize="@dimen/normale" />
</RelativeLayout>
4

4 回答 4

3

请注意,您不能将 RelativeLayout 与 Gravity 或 Layout_gravity 一起使用

我如何做事的一个例子。这完美地工作(它位于垂直居中的列表视图单元格的右侧)

<RelativeLayout
        android:id="@+id/right"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:layout_margin="4dp" >

        <TextView
            android:id="@+id/annuaire_distance_etablissement"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginRight="4dp"
            android:layout_toLeftOf="@+id/arrow_img"
            android:singleLine="true"
            android:textColor="@color/clr_main_green"
            android:textSize="12sp" />

        <ImageView
            android:id="@+id/arrow_img"
            android:layout_width="15dp"
            android:layout_height="15dp"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:layout_marginRight="4dp"
            android:src="@drawable/icone_fleche" />
    </RelativeLayout>
于 2013-10-01T07:26:50.200 回答
2

您可以像这样简单地将Spinnerand包裹在TextView里面LinearLayout

<LinearLayout 
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:orientation="horizontal" >

删除行

android:layout_toRightOf="@+id/spinner1"

如果你愿意,你可以相对LinearLayout(添加 layout_below、layout_above 等)

然后,在两者中TextView添加Spinner

android:layout_gravity="center_vertical"
于 2013-09-30T20:08:50.590 回答
2

像这样在相对布局中试试这个

[<RelativeLayout
    android:id="@+id/dropdownlayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:orientation="horizontal" >

    <Spinner
        android:id="@+id/spinner1"
        android:layout_width="250dp"
         android:gravity="center"
        android:background="@android:drawable/btn_dropdown"
        android:layout_centerVertical="true"
        android:layout_height="40dp"
        android:layout_gravity="center" />

    <TextView
        android:id="@+id/ok1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/white_box"
        android:gravity="center"
        android:layout_centerVertical="true"
        android:paddingLeft="10dp"
        android:layout_toRightOf="@+id/spinner1"
        android:paddingRight="10dp"
        android:text="@string/ok"
        android:textColor="@android:color/black"
        android:textSize="@dimen/normale" />
</RelativeLayout>]

在此处输入图像描述

于 2013-09-30T16:06:48.733 回答
1

您应该坚持线性布局并在 TextView 上尝试以下操作:

android:layout_gravity="center_vertical"

然后在你的 TextView 你应该改变

android:layout_height="fill_parent"

进入

android:layout_height="wrap_content"
于 2014-03-27T09:58:14.343 回答