2014-12-14 4 views
1

У меня возникает проблема при открытии клавиатуры, текст редактирования отображается частично, например, не полный.android edittext становится видимым на открытой клавиатуре

Скриншот:

enter image description here

Вот код макета:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@color/lightgreen" 
    android:fillViewport="true" 
    android:padding="20dp" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/lightgreen" 
     android:orientation="vertical" > 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/str_mobilenumber" 
      android:textSize="16sp" /> 

     <EditText 
      android:id="@+id/reg_mobile" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:inputType="phone" /> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/str_password" 
      android:textSize="16sp" /> 

     <EditText 
      android:id="@+id/reg_password" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:inputType="textPassword" /> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/str_password_confirm" 
      android:textSize="16sp" /> 

     <EditText 
      android:id="@+id/reg_password_confirm" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:inputType="textPassword" /> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/str_fullname" 
      android:textSize="16sp" /> 

     <EditText 
      android:id="@+id/reg_name" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      tools:ignore="TextFields" /> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/str_email" 
      android:textSize="16sp" /> 

     <EditText 
      android:id="@+id/reg_email" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:inputType="textEmailAddress" /> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="3dp" 
      android:text="@string/str_city" 
      android:textSize="16sp" /> 

     <Spinner 
      android:id="@+id/reg_city" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:entries="@array/cities_array" 
      android:prompt="@string/str_city" /> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/str_zip" 
      android:textSize="16sp" /> 

     <EditText 
      android:id="@+id/reg_zip" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="10dp" 
      android:inputType="phone" /> 

     <Button 
      android:id="@+id/btnRegister" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:onClick="actionRegister" 
      android:text="@string/str_register" /> 
    </LinearLayout> 

</ScrollView> 

Такая же проблема происходит с любым текстовым полем редактирования, что, когда клавиатура oens, он не полностью появится. Есть ли способ избежать этой проблемы?

Благодаря

+0

Вы использовали ScrollView, чтобы даже при открытии клавиатуры вы могли прокручивать вниз и видеть edittext и другие виды, которые не видны – Jamil

ответ

2

проблема не хватает места для Планируя и клавиатуры. вы можете прокрутить изображение, чтобы предотвратить эту проблему. Есть два способа сделать это:

главное окно своей деятельности в «adjustResize» всегда изменяется, чтобы освободить место для мягкой клавиатуры на экране.

главное окно своей деятельности в «adjustPan» не изменяется, чтобы освободить место для мягкой клавиатуры. Скорее, содержимое окна автоматически разворачивается так, что текущий фокус никогда не скрывается клавиатурой, и пользователи всегда могут видеть, что они набирают. Это, как правило, менее желательно, чем изменение размера, поскольку пользователю может понадобиться закрыть мягкую клавиатуру, чтобы получить доступ к скрытым частям окна и взаимодействовать с ними.

вы должны добавить эту строку в тег активности внутри manifest.xml

<activity android:windowSoftInputMode="adjustResize"> </activity> 
2

Отъезд доступных атрибутов для the activity element, в частности, android:windowSoftInputMode. Вы можете подумать о добавлении либо adjustResize:

Главное окно деятельности всегда изменено, чтобы освободить место для экранной клавиатуры.

или adjustPan:

Главное окно на данный вид деятельности не изменяется, чтобы освободить место для мягкой клавиатуры. Скорее, содержимое окна автоматически разворачивается так, что текущий фокус никогда не скрывается клавиатурой, и пользователи всегда могут видеть, что они набирают. Это, как правило, менее желательно, чем изменение размера, поскольку пользователю может понадобиться закрыть мягкую клавиатуру, чтобы получить доступ к скрытым частям окна и взаимодействовать с ними.

в зависимости от ваших конкретных требований.

Пример использования:

<activity android:windowSoftInputMode="adjustResize" /> 

This answer также может быть полезным для чтения.

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