我有一个关于MaterialSpinner视图使用的具体问题。
我希望微调器完全对齐在android.support.design.widget.TextInputLayout视图组中包含的EditText的右侧,以便浮动标签支持。
我已尝试过LinearLayout和RelativeLayout(使用align to layout属性),但没有一个正常工作。
我最终看起来像this。
到目前为止,我的布局如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<android.support.design.widget.TextInputLayout
android:id="@+id/weightWidget"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1">
<EditText
android:id="@+id/weight"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:ems="10"
android:hint="@string/weight"
android:inputType="number" />
</android.support.design.widget.TextInputLayout>
<fr.ganfra.materialspinner.MaterialSpinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:entries="@array/weights_unit_array"
app:ms_alignLabels="false"
app:ms_arrowColor="#0000FF"
app:ms_arrowSize="16dp"
app:ms_floatingLabelColor="#00FF00"
app:ms_floatingLabelText="floating label"
app:ms_hint="@string/unit"
app:ms_multiline="false"
app:spinnerMode="dialog" />
</LinearLayout>
</LinearLayout>
在Android Studio中的布局设计器的预览中,它似乎已对齐,但当我在模拟器或真实设备上运行它时,视图未对齐,如上一屏幕截图所示。< / p>
答案 0 :(得分:17)
我决定不使用MaterialSpinner视图,尽管浮动标签看起来不错。
我正在使用带有.underline样式的常规Spinner:
<Spinner
android:id="@+id/height_unit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:entries="@array/heights_unit_array"
android:prompt="@string/unit"
android:spinnerMode="dialog"
style="@style/Widget.AppCompat.Spinner.Underlined"
android:layout_gravity="bottom"/>