2016-12-27 1 views
0

У меня есть активность с парой editText в верхней части активности и два buttons, которые у меня есть в нижнем колонтитуле.Кнопка нижнего колонтитула не работает, когда клавиатура ввода видна

Когда я нажимаю один из текста редактирования, появляется клавиатура и нижний колонтитул adjustResize. Это поведение, которое я хочу иметь.

Моя проблема в том, что при попытке нажать один из этих buttons (когда клавиатура видна) клавиатура скрыта, и действие нажать кнопку не работает.

Мой вопрос: как я могу поддерживать нижний колонтитул, когда клавиатура видна в действии.

Моя активность в манифесте:

<activity 
     android:name=".activity.InitSessionActivity" 
     android:configChanges="orientation" 
     android:screenOrientation="portrait" 
     android:windowSoftInputMode="adjustResize" /> 

Я создал свою деятельность в соответствии с решением этого ответа: How to adjust layout when soft keyboard appears

Моя активность XML:

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    style="@style/screen" 
    android:fillViewport="true" 
    android:background="@color/colorPrimary" 
    android:layout_alignParentBottom="true" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     style="@style/screen" 
     android:id="@+id/ly_general" 
     android:fitsSystemWindows="true"> 

     <android.support.design.widget.TextInputLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      style="@style/inputTextLayout" 
      android:layout_marginTop="172dp" 
      app:hintTextAppearance="@style/edittextWithTextInputLayout" 
      android:layout_centerHorizontal="true" 
      android:id="@+id/textInputLayout"> 

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


     <include layout="@layout/footer" /> 

     <android.support.design.widget.TextInputLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      style="@style/inputTextLayout" 
      app:hintTextAppearance="@style/edittextWithTextInputLayout" 
      android:id="@+id/textInputLayoutEmail" 
      android:layout_below="@+id/text_init_session" 
      android:layout_marginTop="@dimen/padding_10"> 

      <EditText 
       android:id="@+id/login_ed_email" 
       android:layout_width="314dp" 
       android:layout_height="wrap_content" 
       android:hint="@string/login_hint_email" 
       android:drawablePadding="5dp" 
       android:inputType="textEmailAddress" 
       android:textColorHint="@color/white3" 
       style="@style/edittextWithTextInputLayout" 
       android:transitionName="@string/email" 
       android:nextFocusDown="@+id/login_ed_password" 
       android:layout_marginTop="9dp" 
       android:layout_below="@+id/text_init_session" 
       android:layout_alignParentRight="true" 
       android:layout_alignParentEnd="true" 
       android:backgroundTint="@color/secundary_foreground" /> 
     </android.support.design.widget.TextInputLayout> 

     <android.support.design.widget.TextInputLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      style="@style/inputTextLayout" 
      app:hintTextAppearance="@style/edittextWithTextInputLayout" 
      android:id="@+id/textInputLayout2" 
      android:layout_marginTop="16dp" 
      android:layout_below="@+id/textInputLayoutEmail"> 

      <EditText 
       android:id="@+id/login_ed_password" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:hint="Contraseña" 
       android:textColorHint="@color/colorPrimary" 
       style="@style/edittextWithTextInputLayout" 
       android:transitionName="@string/password" 
       android:drawableLeft="@drawable/login_ico_password" 
       android:drawablePadding="5dp" 
       android:nextFocusDown="@+id/login_btn_enter" 
       android:nextFocusUp="@+id/login_ed_email" 
       android:inputType="textPassword" 
       android:backgroundTint="@color/secundary_foreground" /> 
     </android.support.design.widget.TextInputLayout> 

     <TextView 
      android:id="@+id/login_tx_forgot" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="left" 
      android:textColor="@color/secundary_foreground" 
      android:padding="@dimen/margin_13" 
      android:text="@string/login_forgot_password" 
      android:layout_below="@+id/textInputLayout2" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:layout_marginLeft="@dimen/padding_16"/> 

     <TextView 
      android:text="@string/login_title_init_session" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:textColor="@color/white" 
      android:padding="10dp" 
      android:textSize="@dimen/text_size_22" 
      android:id="@+id/text_init_session" 
      android:layout_marginTop="17dp" 
      android:layout_marginLeft="@dimen/padding_13" 
      android:layout_below="@+id/image" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" /> 

     <ImageView 
      android:id="@+id/image" 
      android:layout_width="134dp" 
      android:layout_height="45dp" 
      android:src="@drawable/logo_loycus_new" 
      android:layout_alignParentTop="true" 
      android:layout_alignLeft="@+id/textInputLayoutEmail" 
      android:layout_alignStart="@+id/textInputLayoutEmail" /> 

    </RelativeLayout> 
</ScrollView> 

Foter:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/footer" 
    android:layout_width="match_parent" 
    android:layout_height="70dp" 
    android:layout_alignParentBottom="true" 
    android:gravity="center" 
    android:background="@color/colorPrimary"> 

    <View 
     android:layout_width="match_parent" 
     android:layout_height="0.5dp" 
     android:background="@color/backgroundScreens" 
     android:id="@+id/view"/> 

    <Button 
     android:text="@string/volver" 
     android:textAllCaps="false" 
     android:layout_width="@dimen/button_folder_widht" 
     android:layout_height="@dimen/button_folder_height" 
     android:id="@+id/buttonComeBack" 
     android:background="@drawable/btn_selecto_come_back" 
     android:textColor="@color/white" 
     android:layout_marginLeft="@dimen/margin_16" 
     android:layout_marginTop="@dimen/padding_10"/> 

    <Button 
     android:layout_marginTop="@dimen/padding_10" 
     android:text="@string/enter" 
     android:textAllCaps="false" 
     android:layout_width="@dimen/button_folder_widht" 
     android:layout_height="@dimen/button_folder_height" 
     android:background="@drawable/btn_selector_green" 
     android:textColor="@color/colorPrimary" 
     android:id="@+id/login_loycus" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 
     android:layout_marginRight="@dimen/margin_16"/> 

</RelativeLayout> 
+0

Сохраните всю схему в прокрутке и проверьте – Nainal

+0

Я только что обновил вопрос с помощью своего xml. Да, у меня есть макет внутри прокрутки и не работает –

ответ

1

Корректировать сноска как: -

<include layout="@layout/footer" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" /> 

Удалить это из ScrollView

android:layout_alignParentBottom="true" 

Удалить это из относительной компоновки, имеющей идентификатор ly_general

android:fitsSystemWindows="true" 

Добавить это Scrollview

android:fitsSystemWindows="true" 

EDIT: -

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

android:layout_alignParentBottom="true" 

и настроить его там, где вы хотите разместить его на своем пользовательском интерфейсе.

+0

Hi Nainal. Я пробовал свои изменения, но эффект тот же. Нижний колонтитул показывает клавиатуру, но когда я пытаюсь нажимать кнопку, клавиатура скрывается, а кнопка пресса не работает. В этот момент кнопка возвращается при действии, и теперь я могу нажимать и работать, но это не то поведение, которое я хочу.Мне нужно иметь возможность нажимать кнопку, когда отображается клавиатура –

+0

Я не уверен, что она сработает или нет, попробуйте это в своем onclick: - – Nainal

+0

if (view.hasFocus()) { InputMethodManager imm = (InputMethodManager) getSystemService (Context.INPUT_METHOD_SERVICE); imm.toggleSoftInput (InputMethodManager.SHOW_FORCED, 0); } – Nainal

0

Я просто попытался ваш XML с сноской я написал

<?xml version="1.0" encoding="utf-8"?> 
 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
 
       android:orientation="vertical" 
 
       android:layout_width="match_parent" 
 
       android:layout_height="40dp" 
 
       android:layout_alignParentBottom="true" 
 
       android:background="@android:color/black"> 
 

 
    <Button 
 
     android:id="@+id/button1" 
 
     android:layout_width="wrap_content" 
 
     android:layout_height="wrap_content" 
 
     android:text="button 1"/> 
 

 
    <Button 
 
     android:id="@+id/button2" 
 
     android:layout_width="wrap_content" 
 
     android:layout_height="wrap_content" 
 
     android:text="button 2"/> 
 

 
</LinearLayout>

и все, кажется, работает хорошо. Возможно, вы можете объяснить проблему немного больше? или разместить свой код/​​нижний колонтитул?

+0

Привет, Yuxal. Я обновил свой код с помощью моего нижнего колонтитула xml. Нижний колонтитул работает отлично и отображается с помощью клавиатуры. Моя проблема в том, что если я попытаюсь нажать кнопку, клавиатура будет скрыта, а кнопка пресса не работает. То, что я хочу сделать, - это нажать нижний колонтитул кнопки, пока отображается клавиатура. Если вы понимаете, о чем я?? –

+0

Вы реализовали onclicklistener на кнопке? – Nainal

+0

Да, потому что, когда клавиатура не отображается, я могу нажать кнопку и работает –

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