2015-06-27 20 views
8

MaterialSpinner görünümünün kullanımıyla ilgili belirli bir sorum var.Widget.TextInputLayout MaterialSpinner görünümü ile nasıl hizalanır?

Döner etiket desteği için bir android.support.design.widget.TextInputLayout görünüm grubuna sarılmış bir EditText'in sağ tarafına mükemmel bir şekilde hizalanmasını istiyorum.

Hem LinearLayout hem de RelativeLayout öğelerini denedim (align for layout niteliklerini kullanarak) ve hiçbiri düzgün çalışmıyor.

this'a benzeyen bir şeyle bitiriyorum. Aşağıda

şimdiye kadar benim düzenidir:, bunun hizalanmış oluyor gibi görünüyor ama Android Studio'da düzen tasarımcının önizlemede

<?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> 

Ben emülatörü ya da gerçek cihazda, görünümler üzerinde ya çalıştırdığınızda önceki ekran görüntüsünde gösterildiği gibi hizalanmaz.

cevap

17

Malzeme etiketi ile iyi görünse de MaterialSpinner görünümünü kullanmamaya karar verdim.

Ben uygulanan .underline tarzı ile düzenli Spinner kullanıyorum:

 <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"/> 
+0

Unfortunattely android: ipucu –

+0

android çalışmıyor: ipucu iplikçiler için desteklenmez. Bunun yerine, varsayılan bir değer seçilebilir. İdeal değil, ancak iyi seçilmişse, varsayılan değeriniz kullanıcı için bir ipucu olacaktır. santimetre. – duke

İlgili konular