6

Czy jest możliwe umieszczenie pływającej etykiety (e-mail/hasło) w pudełku. Zasadniczo zmniejsz przestrzeń między wskazówką a faktycznym wejściem.Android - zmniejszyć dopełnienie/margines dla pływających etykiet EditText?

enter image description here

Próbowałem wyściółka góra/dół. Margin Top/Bottom dla editText. Ale żaden z nich nie dał rezultatu, którego szukam.


<android.support.design.widget.TextInputLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="20dp" 
    android:id="@+id/emailWrapper" 
    app:hintTextAppearance="@style/floatingLabel"> 

    <EditText 
     android:layout_width="match_parent" 
     android:layout_height="54dp" 
     android:paddingLeft="17dp" 
     android:paddingRight="17dp" 
     android:id="@+id/txtEmail" 
     android:singleLine="true" 
     android:inputType="textEmailAddress" 
     android:hint="@string/emailPlaceholder" 
     android:background="@drawable/btn_empty_stroke" /> 

</android.support.design.widget.TextInputLayout> 

<android.support.design.widget.TextInputLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    app:hintTextAppearance="@style/floatingLabel" 
    android:id="@+id/passwordWrapper" 
    android:layout_below="@+id/emailWrapper"> 

    <EditText 
     android:layout_width="match_parent" 
     android:layout_height="54dp" 
     android:paddingLeft="17dp" 
     android:paddingRight="17dp" 
     android:singleLine="true" 
     android:inputType="textPassword" 
     android:id="@+id/txtPassword" 
     android:paddingTop="0dp" 
     android:text="HELLO" 
     android:hint="@string/passwordPlaceholder" 
     android:background="@drawable/btn_empty_stroke" /> 

</android.support.design.widget.TextInputLayout> 
+2

Co się stanie, jeśli zmniejszysz również wysokość? –

Odpowiedz

11

Dzięki @Frank N.Stein za komentarz i idei zmniejszając wysokość. Zrobiło to.

Odpowiadając na moje własne pytanie. Jak ktoś inny może wymyślić ten problem.

Więc zasadniczo musiałem podać dokładną wysokość TextInputLayout i zachować wysokość EditText tak samo. Podaj także paddingTop do TextInputLayout i clipToPadding false. Tak końcowy textbox xml wychodzi w ten sposób.

<android.support.design.widget.TextInputLayout 
    android:layout_width="match_parent" 
    android:layout_marginTop="20dp" 
    android:layout_height="54dp" 
    android:gravity="bottom" 
    android:paddingTop="4dp" 
    android:clipToPadding="false" // above 3 lines are important 
    android:id="@+id/emailWrapper" 
    app:hintTextAppearance="@style/floatingLabel"> 

    <EditText 
     android:layout_width="match_parent" 
     android:layout_height="54dp" 
     android:paddingLeft="17dp" 
     android:paddingRight="17dp" 
     android:id="@+id/txtEmail" 
     android:singleLine="true" 
     android:inputType="textEmailAddress" 
     android:hint="@string/emailPlaceholder" 
     android:text="[email protected]" 
     android:background="@drawable/btn_empty_stroke" /> 

</android.support.design.widget.TextInputLayout> 
+0

Dzięki, to działa. –

0

Wystarczy dodać do swojej EditText niestandardowego tła:

<?xml version="1.0" encoding="utf-8"?> 
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
     <item> 
      <shape android:shape="rectangle"> 
       <padding android:bottom="4dp"/> // your padding value 
      </shape> 
     </item> 
    <!-- customize your background items if you need --> 
    </layer-list> 

    <android.support.design.widget.TextInputLayout 
    ...> 
     <android.support.design.widget.TextInputEditText 
      ... 
      android:background="@style/your_custom_background"/> 

następnie zastosować go do EditText i zwiększyć wysokość twojej EditText z wartości dopełnienia jeśli używasz ustaloną wysokość.