我的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>
答案 0 :(得分: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>]
答案 1 :(得分:2)
您可以将Spinner
和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"
答案 2 :(得分:2)
请注意,您不能将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>
答案 3 :(得分:1)
您应该坚持使用线性布局并在TextView上尝试以下操作:
android:layout_gravity="center_vertical"
然后在TextView中你应该改变
android:layout_height="fill_parent"
进入
android:layout_height="wrap_content"