我注意到TextVew控件的layout_alignBaseline不适用于Spinner控件。 我正在尝试将文本放在微调器的左侧,但它会转到父控件的顶部。
<Spinner
android:id="@+id/locations"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/userCode"
android:layout_alignLeft="@id/userCode"
android:layout_marginTop="15dip"
/>
<TextView
android:id="@+id/locationsLbl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Region"
android:layout_alignBaseline="@id/locations"
/>
这是一个错误还是我做错了什么?使用EditText控件时,相同的技术可以正常工作。
答案 0 :(得分:6)
我也面临同样的问题,但发现了以下解决方法
<Spinner
android:id="@+id/locations"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/userCode"
android:layout_alignLeft="@id/userCode"
android:layout_marginTop="15dip"/>
<TextView
android:id="@+id/locationsLbl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Region"
android:layout_alignTop="@+id/locations"
android:layout_alignBottom="@+id/locations"
android:gravity="center_vertical"/>
答案 1 :(得分:1)
较新版本的Android支持Spinners的基线对齐。 Spinner将创建列表的第一个视图并使用其基线对齐。
如果这不起作用,请确保您的微调器适配器创建一个支持基线对齐的视图。 (getBaseline()!= -1)。对于LinearLayouts,您可以使用baselineAlignedChildIndex属性指定要使用的线性布局中的子项。
答案 2 :(得分:0)
android:layout_toLeftOf="@id/locations"
?