2015-08-27 7 views
0

Я пытаюсь реализовать TextInputLayout для моего макета. У меня есть 3 EditText. Я обертываю каждый из них в отдельный TextInputLayout.Android: TextInputLayout укладка на eachother

Вместо того, чтобы разделять, они укладываются поверх друг друга.


<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@color/background_colour"> 

<ScrollView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:padding="8dp" 
    android:paddingBottom="16dp"> 

    <RelativeLayout 
     android:id="@+id/sign_in_form_relative" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="30dp" 
     android:gravity="center" 
     android:padding="8dp"> 

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

      <EditText 
       android:id="@+id/sign_in_username" 
       android:layout_width="match_parent" 
       android:layout_height="48dp" 
       android:layout_alignParentTop="true" 
       android:background="@drawable/apptheme_edit_text_holo_light" 
       android:drawableLeft="@drawable/ic_action_unread" 
       android:drawablePadding="8dp" 
       android:drawableStart="@drawable/ic_action_unread" 
       android:hint="@string/sign_in_username_field" 
       android:imeOptions="actionNext" 
       android:inputType="textEmailAddress|textNoSuggestions" 
       android:textAppearance="?android:textAppearanceMedium" /> 
     </android.support.design.widget.TextInputLayout> 

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

      <EditText 
       android:id="@+id/sign_in_password" 
       android:layout_width="match_parent" 
       android:layout_height="48dp" 
       android:layout_below="@+id/username_input_layout" 
       android:background="@drawable/apptheme_edit_text_holo_light" 
       android:drawableLeft="@drawable/ic_action_secure_dark" 
       android:drawablePadding="8dp" 
       android:drawableStart="@drawable/ic_action_secure_dark" 
       android:hint="@string/reg_password" 
       android:imeOptions="actionNext" 
       android:inputType="textPassword" 
       android:textAppearance="?android:textAppearanceMedium" /> 
     </android.support.design.widget.TextInputLayout> 

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

      <EditText 
       android:id="@+id/sign_in_api_url" 
       android:layout_width="match_parent" 
       android:layout_height="48dp" 
       android:layout_below="@+id/password_input_layout" 
       android:background="@drawable/apptheme_edit_text_holo_light" 
       android:drawableLeft="@drawable/ic_action_private_server" 
       android:drawablePadding="8dp" 
       android:drawableStart="@drawable/ic_action_private_server" 
       android:hint="@string/sign_in_server_field" 
       android:imeOptions="actionDone" 
       android:inputType="textUri" 
       android:textAppearance="?android:textAppearanceMedium" /> 
     </android.support.design.widget.TextInputLayout> 

     <Button 
      android:id="@+id/sign_in_button" 
      android:layout_width="match_parent" 
      android:layout_height="48dp" 
      android:layout_below="@id/server_api_layout" 
      android:layout_marginBottom="8dp" 
      android:layout_marginLeft="16dp" 
      android:layout_marginRight="16dp" 
      android:layout_marginTop="16dp" 
      android:background="@drawable/selector_normal_to_bright" 
      android:padding="8dp" 
      android:text="@string/reg_sign_in" 
      android:textAppearance="?android:textAppearanceMedium" 
      android:textColor="@android:color/white" /> 

     <TextView 
      android:id="@+id/sign_in_forgot_pwd" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentEnd="true" 
      android:layout_alignParentRight="true" 
      android:layout_below="@+id/sign_in_button" 
      android:layout_margin="12dp" 
      android:layout_marginBottom="24dp" 
      android:clickable="true" 
      android:gravity="end" 
      android:paddingBottom="16dp" 
      android:text="@string/reg_forgot_password" 
      android:textAlignment="textEnd" 
      android:textAppearance="?android:textAppearanceMedium" 
      android:textColor="@color/flavor_hyperlink_text_colour" 
      android:textStyle="bold" /> 
    </RelativeLayout> 

</ScrollView> 

Пожалуйста помогите.

Благодаря

+0

Непонятно, в чем проблема и чего вы пытаетесь достичь. Не могли бы вы опубликовать скриншот приложения и объяснить, что с ним не так? – Egor

+0

Есть 3 текстовых редактора. Имя пользователя, пароль и сервер. При применении TextInputLayouts, как указано, они складываются поверх eachother. Я уточню вопрос о том, что происходит. Мне нужно знать, что я делаю неправильно, что приводит к их укладке. – TejjD

+0

Я добавил скриншоты – TejjD

ответ

2

Вы, кажется, есть android:layout_below="@+id/username_input_layout" на вашем EditText с ID: android:id="@+id/sign_in_password"

Вместо этого вы должны иметь его на TextInputLayout с ID: android:id="@+id/password_input_layout" так:

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

     <EditText 
      android:id="@+id/sign_in_username" 
      android:layout_width="match_parent" 
      android:layout_height="48dp" 
      android:layout_alignParentTop="true" 
      android:background="@drawable/apptheme_edit_text_holo_light" 
      android:drawableLeft="@drawable/ic_action_unread" 
      android:drawablePadding="8dp" 
      android:drawableStart="@drawable/ic_action_unread" 
      android:hint="@string/sign_in_username_field" 
      android:imeOptions="actionNext" 
      android:inputType="textEmailAddress|textNoSuggestions" 
      android:textAppearance="?android:textAppearanceMedium" /> 
    </android.support.design.widget.TextInputLayout> 

    <android.support.design.widget.TextInputLayout 
     android:id="@+id/password_input_layout" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android.layou_below="@+id/username_input_layout"> 

     <EditText 
      android:id="@+id/sign_in_password" 
      android:layout_width="match_parent" 
      android:layout_height="48dp" 
      android:background="@drawable/apptheme_edit_text_holo_light" 
      android:drawableLeft="@drawable/ic_action_secure_dark" 
      android:drawablePadding="8dp" 
      android:drawableStart="@drawable/ic_action_secure_dark" 
      android:hint="@string/reg_password" 
      android:imeOptions="actionNext" 
      android:inputType="textPassword" 
      android:textAppearance="?android:textAppearanceMedium" /> 
    </android.support.design.widget.TextInputLayout> 

    <android.support.design.widget.TextInputLayout 
     android:id="@+id/server_api_layout" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android.layou_below="@+id/password_input_layout"> 

     <EditText 
      android:id="@+id/sign_in_api_url" 
      android:layout_width="match_parent" 
      android:layout_height="48dp" 
      android:background="@drawable/apptheme_edit_text_holo_light" 
      android:drawableLeft="@drawable/ic_action_private_server" 
      android:drawablePadding="8dp" 
      android:drawableStart="@drawable/ic_action_private_server" 
      android:hint="@string/sign_in_server_field" 
      android:imeOptions="actionDone" 
      android:inputType="textUri" 
      android:textAppearance="?android:textAppearanceMedium" /> 
    </android.support.design.widget.TextInputLayout> 

Это способ использования layout_below

container1 
    editText 
container below container1 
    editText 

Вы пытаетесь сделать это:

container 
    editText 
container 
    editText below container1 

Попробуйте это и, пожалуйста, доложите ваш прогресс

+0

Спасибо, что работает. – TejjD

+0

TextInputLayout не работает над вторым и третьим EditText. Только 1-й – TejjD

+0

«TextInputLayout» просто не отображается или? – Detilium

1

Если складывая вы имеете в виду, что TextInputLayouts наложение друг на друга, то это, вероятно, происходит потому, что вы используете a RelativeLayout. Если вы хотите, чтобы они отображались один под другим, чем любой из них, переключитесь на LinearLayout с android:orientation, установленным на vertical, или используйте атрибут android:layout_below, чтобы указать правильные отношения между видами.

+1

Спасибо, это помогло – TejjD

Смежные вопросы