8

Mam prostokątny edytor tekstu, który znajduje się wewnątrz obiektu TextInputLayout. Chcę umieścić margines między pływającymi etykietami i prostokątnymi granicami edytowanego tekstu, ale nie jestem w stanie tego zrobić. Próbowałem różnych parametrów marginesów, ale nie ćwiczyłem. here is the screen shot of the Edit textJak zmienić pozycję pływającej etykiety TextInputLayout w Androidzie

Na zdjęciu widać, że pływająca etykieta jest przyklejona do górnej granicy prostokątnego tekstu edycji. Ale chcę trochę przestrzeni między etykietą a górną granicą. Thanx z góry.

poniżej jest kod XML dla EditText

<android.support.design.widget.TextInputLayout 
      android:id="@+id/input_layout_password" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 

      > 

      <EditText 
       android:id="@+id/input_password" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:hint="email" 

       android:background="@drawable/textbg"/> 

poniżej jest kod na tle rozciągliwej

<shape xmlns:android="http://schemas.android.com/apk/res/android" 

    android:shape="rectangle"> 
    <stroke android:width="1dp" 
     android:color="@color/colorPrimary"/> 
    /> 

    <padding 
     android:left="15dp" 
     android:right="15dp" 
     android:top="15dp" 
     android:bottom="15dp" /> 
</shape> 
+0

Użyj tego linku, aby rozwiązać problem. http: //www.androidhive.info/2015/09/android-material-design-floating-labels-for-edittext/ Mam nadzieję, że to ci pomoże. Wszystkiego najlepszego. – Shane

+0

Możesz odnieść się do tej odpowiedzi: http://stackoverflow.com/questions/32609710/textinputlayout-how-to-give-padding-or-margin-to-hint – Chandler

+0

Możesz odwołać się do tego linku: http: // stackoverflow.com/questions/32609710/textinputlayout-how-to-give-padding-or-margin-to-hint – Chandler

Odpowiedz

0

Jeśli niestandardowe tła ustawiony na EditText androida: paddingTop atrybut simple nie działa, aby zmienić odstępy między tekstem podpowiedzi pływających i tekstem edycji. Jeśli więc ustawiłeś niestandardowe tło dla EditText, możesz użyć atrybutu android: translationY w EditText.

<android.support.design.widget.TextInputLayout 
      android:id="@+id/input_layout_password" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"> 

      <EditText 
       android:id="@+id/input_password" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:hint="email" 
       android:translationY="10dp" 
       android:background="@drawable/textbg"/> 

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

Nadzieja to pomaga :)

+0

android: translationY = "10dp" przetłumaczy tekst edycji lub faktycznie dowolny widok. – Baqir

+1

tak, twoje rozwiązanie działa zgodnie z pytaniem, ale także zmienia pozycję oryginalnej wskazówki (gdy nie była skupiona). – Baqir

4

wierzę, że nie można dostosować TextInputLayout położenie etykiety. i użycie TranslationY nie jest odpowiednim rozwiązaniem do zmiany pozycji zmiennej pływającej, ponieważ spowoduje ona przetłumaczenie dowolnego widoku. jeśli znajdziesz inną odpowiedź, daj mi znać.

+0

Dziękuję za odpowiedź i zgadzam się z komentarzem – Baqir

1

Można ręcznie podać wysokość do TextInputLayout odczuwalna:

android:layout_height="100dp" 

to praca dla mnie.

+0

Działa dokładnie zgodnie z oczekiwaniami. Ale także musisz ustawić grawitację = dół, ponieważ TextInputLayout na wyższą wysokość pojawi się u góry. – Serhii

+0

gdzie umieścić wysokość układu ??? –

1

Użyj rozsuwanego tła z listą warstw, aby uzyskać dopełnienie od góry.

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:top="10dp"> 
     <shape android:shape="rectangle"> 
      <!-- view background color --> 
      <solid android:color="@android:color/transparent"></solid> 

      <stroke 
       android:width="1dp" 
       android:color="@color/colorAccent" /> 

      <!-- If you want to add some padding --> 
      <padding 
       android:bottom="10dp" 
       android:left="10dp" 
       android:right="10dp" 
       android:top="10dp"></padding> 
     </shape> 
    </item> 
</layer-list> 

Wykorzystanie

<android.support.design.widget.TextInputLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:hint="@string/label_quantity" 
    android:textColorHint="@color/colorOrange" 
    app:errorEnabled="true" 
    app:errorTextAppearance="@style/ErrorText"> 

    <android.support.design.widget.TextInputEditText 
    android:layout_width="match_parent" 
    android:layout_height="@dimen/login_edit_text_height" 
    android:background="@drawable/drawable_background" 
    android:imeOptions="actionNext" 
    android:inputType="number" 
    android:maxLines="1"/> 

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

nie działa. co więcej, twój kod jest w kształcie prostokąta, a moje pytanie dotyczy pustego prostokąta. – Baqir

+0

Cóż, możesz przejść do pustego miejsca, edytując losowanie. Zaktualizowałem odpowiedź. To musi działać. –

+0

wykonał kilka trików, ale teraz kursor editekstu i podpowiedź wygląda na bardziej zakrzywioną w kierunku górnej granicy prostokąta, gdy nie jest skupiona. I myślę, że będzie to widoczne zgodnie z rozdzielczością ekranu/rozmiarem telefonu – Baqir

0

Do tego po prostu trzeba umieścić tło w textinputlayout z edttext jak postępować

<android.support.design.widget.TextInputLayout 
     android:id="@+id/input_layout_password" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@drawable/textbg" 
     > 

     <EditText 
      android:id="@+id/input_password" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:hint="email"/> 

i po prostu trzeba określić dopełnienie szczyt w plik do pobrania.

0

Wystarczy dodać do swojej EditText niestandardowego tle

<?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:top="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ść swojej EditText ze swojej wartości dopełnienia jeśli używasz wysokość fix