2016-11-29 3 views
1

У меня есть форма входа в мое приложение (только EditText для электронной почты и еще одна для пароля и под его кнопкой), а так как клавиатура скрывает пароль, когда фокус находится по электронной почте, я хочу, чтобы пользователь чтобы иметь возможность прокручивать пальцем, а не просто щелкнуть по кнопке «Далее» на клавиатуре.Прокрутка содержимого, когда клавиатура видна

Так что я решил добавить ScrollView и потому что я хочу, чтобы содержание быть выровнено вниз, я добавил LinearLayout как родитель ScrollView и добавил тяжести дна для Scrollview.

XML-код для макета:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:background="@color/white" 
android:layout_width="match_parent" android:layout_height="match_parent"> 

<ScrollView 
    android:layout_gravity="bottom" 
    android:fillViewport="true" 
    android:layout_width="match_parent" android:layout_height="wrap_content"> 

     <EditText 
      android:id="@+id/et_name" android:textSize="@dimen/app_text_size_medium" android:textColorHint="@color/white" 
      android:hint="Enter email" android:inputType="text" 
      android:paddingTop="8dp" 
      android:imeOptions="actionNext" android:maxLines="1" 
      android:textColor="@color/white" android:alpha="0.5" 
      android:background="@android:color/transparent" 
      android:layout_width="match_parent" android:layout_height="wrap_content" /> 

     <EditText 
      android:id="@+id/et_password" android:textSize="@dimen/app_text_size_medium" 
      android:hint="@string/sign_in_password_hint" android:inputType="textPassword" android:textColorHint="@color/white" 
      android:textColor="@android:color/white" android:alpha="0.5" 
      android:background="@android:color/transparent" 
      android:imeOptions="actionDone" android:maxLines="1" 
      android:layout_weight="4" 
      android:layout_width="0dp" android:layout_height="wrap_content" /> 

     <Button 
      android:id="@+id/btn_signin_submit" 
      android:text="@string/sign_in_button" android:textColor="@color/white" android:textSize="@dimen/app_text_size_normal" 
      android:textAllCaps="false" 
      android:background="@drawable/selector_btn_sign_in" 
      android:layout_marginLeft="@dimen/spacing_large_app" android:layout_marginRight="@dimen/spacing_large_app" 
      android:layout_width="match_parent" android:layout_height="wrap_content" /> 


    </LinearLayout> 

</ScrollView> 

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

Любая помощь по обеспечению плавной прокрутки?

+0

Я не уверен, если это будет работать, но попробуйте добавить это свойство в объявлении деятельности внутри вашего AndroidManifest.xml:. android: windowSoftInputMode = "stateVisible | adjustResize" –

+0

Спасибо за ответ, но у меня уже есть это внутри моего файла манифеста. – Mes

+0

ScrollView не имеет смысла его удалить и добавить android: windowSoftInputMode = "stateVisible | adjustSpan" для вашей деятельности в manifeast –

ответ

0

Вам не нужно использовать для прокрутки. Вы просто добавляете эту строку в свой файл mainfest в тег боковой активности. андроид: windowSoftInputMode = "adjustPan

0

Wrap все дети внутри из ScrollView внутри другого LinearLayout

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