2014-09-23 6 views
3

Я сделал регистрационную форму, в которой у меня есть две кнопки. Теперь я хочу, чтобы при отображении клавиатуры две кнопки, которые внизу, должны отображаться над клавиатурой и не скрываться под клавиатурой. Чтобы достичь этого, код, который я написал, не дал мне никакого успеха.Дисплей Кнопки над клавиатурой

Xml Код

<LinearLayout 
    android:layout_height="match_parent" 
    android:layout_width="match_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical"> 

    <ScrollView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 


      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:orientation="vertical"> 


       <EditText 
        android:inputType="textPersonName" 
        style="@style/EditText" 
        android:hint="@string/firstname" 
        android:id="@+id/et_first_name" /> 


       <EditText 
        android:inputType="textPersonName" 
        style="@style/EditText" 
        android:hint="@string/lastname" 
        android:id="@+id/et_last_name" /> 

       <Button 
        style="@style/EditText" 
        android:text="@string/country" 
        android:id="@+id/bt_country" /> 


       <Button 
        style="@style/EditText" 
        android:text="@string/gender" 
        android:id="@+id/bt_gender" /> 

       <EditText 
        style="@style/EditText" 
        android:inputType="phone" 
        android:hint="@string/mobileno" 
        android:id="@+id/et_mobile_no" /> 

       <EditText 
        style="@style/EditText" 
        android:inputType="textEmailAddress" 
        android:hint="@string/email" 
        android:id="@+id/et_email" /> 


      </LinearLayout> 


     </LinearLayout> 
    </ScrollView> 

    <LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 

     <Button 
      style="@style/EditText" 
      android:id="@+id/bt_reg_cancel" 
      android:text="@string/cancel" 
      android:layout_gravity="bottom" 
      android:layout_weight="1" /> 

     <Button 
      style="@style/EditText" 
      android:text="@string/save" 
      android:id="@+id/bt_reg_save" 
      android:layout_gravity="bottom" 
      android:layout_weight="1" /> 
    </LinearLayout> 


</LinearLayout> 

Пожалуйста помочь

+0

Почему вы не используете прокрутку? – Umair

+0

Положите свои кнопки внутри ScrollView и попробуйте ...... –

+0

Я хочу, чтобы позиции кнопок фиксировались. – user3917131

ответ

1

В Android Manifest, дать свойство android:windowSoftInputMode="adjustResize". Это изменит размер вашего макета при отображении клавиатуры.

Так что, если что-то на дне, он будет отображаться над клавиатурой, когда он показывает

«Пожалуйста, может у показать мне код с относительным макетом, это было бы очень полезно ??? - user3917131 7 минут назад "

Решение: -

  1. ) Либо поставить нижнюю раскладку в самой Scrollview. Тогда даже если клавиатура будет показана, вы можете прокрутить ее.

2.) Вес Подход: - ScrollView -> 0,7 RelativeLayout -> 0.3 -> В нем написать нижнюю раскладку и дать свойство выравнивания родительского дна верно. В этом подходе ваш scrollview будет занимать всего 0,7 экрана в соответствии с инструкциями по весу, а остальное - по вашему нижнему расположению.

3.) удалить scrollview, вместо этого сделать его linearlayout. Создайте верхнюю родительскую относительную компоновку и дайте свойство выровнять родительское нижнее значение в соответствии с вашей нижней макетой и макетом над свойством на ваш линееклайт

+1

Nah я пробовал, но не работал – user3917131

+0

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

+0

Весь макет не находится в режиме прокрутки – user3917131

0

Вы должны установить leyout_weight из ScrollView на 1, например. И установите leyout_height LinearLayout в "wrap_content". И было бы неплохо установить layout_height из ScrollView в 0dp, так что LinearLayout может управлять своим стартом.

<LinearLayout 
    android:layout_height="match_parent" 
    android:layout_width="match_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical"> 

    <ScrollView 
     android:layout_weight="1" 
     android:layout_width="match_parent" 
     android:layout_height="0dp"> 
    </ScrollView> 
    <LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"> 

     <Button 
      style="@style/EditText" 
      android:id="@+id/bt_reg_cancel" 
      android:text="@string/cancel" 
      android:layout_gravity="bottom" 
      android:layout_weight="1" /> 
     <Button 
      style="@style/EditText" 
      android:text="@string/save" 
      android:id="@+id/bt_reg_save" 
      android:layout_gravity="bottom" 
      android:layout_weight="1" /> 
    </LinearLayout> 


</LinearLayout> 

Это должно сделать трюк.