2015-06-27 15 views
8

Ho una domanda specifica riguardante l'uso della vista MaterialSpinner.Come allineare widget.TextInputLayout con la vista MaterialSpinner?

Desidero che lo spinner sia perfettamente allineato a destra di un EditText racchiuso in un gruppo di visualizzazione android.support.design.widget.TextInputLayout per il supporto delle etichette mobili.

Ho provato sia LinearLayout che RelativeLayout (utilizzando l'allineamento agli attributi di layout) e nessuno funziona correttamente.

Finisco con qualcosa che assomiglia a this.

Qui di seguito è il mio tracciato finora:

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

Nell'anteprima del designer layout in Android Studio, sembra che sia allineato, ma quando l'eseguo sia sul emulatore o un dispositivo reale, i punti di vista non sono allineati come mostrato nella schermata precedente.

risposta

17

Ho deciso di non utilizzare la vista di MaterialSpinner anche se sembra buono con l'etichetta mobile.

Io sto usando uno Spinner regolare con lo stile .underline applicata:

 <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: suggerimento non funziona –

+0

Android: suggerimento non è supportato per filatori. Invece puoi avere un valore predefinito selezionato. Non ideale, ma se scelto bene, il valore predefinito sarà sufficiente per un suggerimento per l'utente, ad es. centimetro. – duke

Problemi correlati