2011-07-11 13 views
1

Я хотел сделать кнопку, всегда установленную в нижней части страницы, но будет перемещаться так, чтобы она всегда показывалась. Основная причина, по которой я хочу это, состоит в том, что когда вы нажимаете на текстовое поле редактирования, клавиатура будет всплывать и скрывать кнопку. Я бы хотел, чтобы кнопка двигалась так, что она сидит над клавиатурой, когда она находится в поле, а затем возвращается в нижнюю часть, когда клавиатура скрыта. В настоящее время я использую относительное расположение:Android: всегда отображается кнопка

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" android:layout_height="fill_parent" 
    android:orientation="vertical" android:background="#FFFFF0"> 

    <RelativeLayout android:orientation="vertical" 
     android:id="@+id/titlebar1" android:background="#082386" 
     android:layout_width="fill_parent" android:layout_height="50dip" 
     android:gravity="center"> 
     <ImageView android:src="@drawable/banner" 
      android:layout_width="wrap_content" android:layout_height="wrap_content" 
      android:scaleType="fitXY"> 
     </ImageView> 
    </RelativeLayout> 


    <Spinner android:layout_height="wrap_content" 
     android:layout_below="@+id/titlebar1" android:layout_width="wrap_content" 
     android:id="@+id/NewUsedSpinner" android:prompt="@string/NewUsed_prompt" 
     android:layout_marginTop="15dip"> 
    </Spinner> 
    <Spinner android:layout_height="wrap_content" 
     android:layout_below="@+id/NewUsedSpinner" android:layout_width="wrap_content" 
     android:id="@+id/MakeSpinner" android:prompt="@string/Make_prompt"> 
    </Spinner> 
    <Spinner android:layout_height="wrap_content" 
     android:layout_below="@+id/MakeSpinner" android:layout_width="wrap_content" 
     android:id="@+id/ModelSpinner" android:prompt="@string/Model_prompt"></Spinner> 
    <Spinner android:layout_height="wrap_content" 
     android:layout_below="@+id/NewUsedSpinner" android:layout_width="wrap_content" 
     android:id="@+id/TrimSpinner" android:prompt="@string/Trim_prompt"></Spinner> 
    <Spinner android:layout_height="wrap_content" 
     android:layout_width="wrap_content" android:id="@+id/PriceSpinner" 
     android:layout_below="@+id/TrimSpinner" android:prompt="@string/Price_prompt" 
     android:layout_marginBottom="5dip"></Spinner> 



    <TextView android:text="Search within the radius of:" 
     android:layout_below="@+id/PriceSpinner" android:id="@+id/textView1" 
     android:layout_width="wrap_content" android:layout_alignLeft="@+id/FilterZip" 
     android:layout_height="wrap_content" android:textColor="#000" 
     android:layout_marginTop="5dip"></TextView> 



    <Spinner android:id="@+id/ZipSpinner" android:layout_width="120dip" 
     android:layout_below="@+id/textView1" android:layout_height="wrap_content" 
     android:prompt="@string/Zip_prompt"></Spinner> 
    <EditText android:layout_width="fill_parent" 
     android:layout_below="@+id/textView1" android:layout_toRightOf="@+id/ZipSpinner" 
     android:layout_height="wrap_content" android:text="Zip" android:id="@+id/FilterZip" 
     android:maxLength="5" android:numeric="integer"></EditText> 


    <Button android:layout_height="50dip" android:id="@+id/FilterSearchbtn" 
     android:layout_alignParentBottom="true" android:layout_width="fill_parent" 
     android:text="Search" android:layout_below="@+id/ZipSpinner" 
     android:background="@drawable/yellow_btn" android:textStyle="bold"></Button> 



</RelativeLayout> 

ответ

2

В вашем Android манифест вы бы добавить к вашей деятельности:

<activity android:name=".YourActivity" 
     android:windowSoftInputMode="adjustResize" 

Вот официальная документация: http://developer.android.com/resources/articles/on-screen-inputs.html

Может попробовать alignParentBottom="true" на кнопке, чтобы она всегда была на дне, вам придется поиграть с макетом.

+0

Я думаю, что это на правильном пути, но оно хорошо работает только для поля edittext, что приятно, но не совсем то, что я пытаюсь выполнить. Я пытаюсь заставить свою кнопку оставаться выше softinput, поэтому, когда клавиатура появится, кнопка будет нажата снизу вверх над клавиатурой. – Nick

+0

Это определенно то, что вы ищете, я думаю, вам просто нужно правильно настроить выравнивание кнопок. Отредактировал мой ответ. –

+0

хорошо, я буду возиться. У меня уже есть выравнивание по моей кнопке, но я согласен, что вы, вероятно, правы. – Nick

0

(1) Если мы хотим только настроить экран без вида, который имеет (alignParentBottom = «истина») в относительном макете затем установить ниже линии в деятельности тег в Manifest.xml

андроида: windowSoftInputMode = «adjustPan»

(2) Если мы хотим, чтобы настроить все относительное расположение с точки зрения, которая имеет (alignParentBottom = «истина») в относительном макете затем установить ниже линии в деятельности тег в manifest.xml

андроид: windowSoftInputMode = «adjustResize»

(3) Если мы не хотим, чтобы настроить весь относительный макет без зрения, которая имеет (alignParentBottom = «истина») в относительном макете затем установить ниже линии в тег действия в manifest.xml

андроида: windowSoftInputMode = "adjustPan | adjustResize"

(4) Если убрать линии андроида: windowSoftInputMode из manifest.xml тогда он будет вести себя как (2) вариант

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