2011-07-11 118 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

好吧,我會亂七八糟的。我的按鈕上已經有了alignparentbottom,但我同意你可能是對的。 – Nick

0

(1)如果我們想只調整屏幕而不視圖,其具有(alignParentBottom =「真」)的相對佈局然後設置爲低於線在活動代碼中的manifest.xml

機器人:windowSoftInputMode = 「adjustPan」

(2)如果我們想調整與具有在相對佈局然後設置爲低於線在活動代碼中的manifest.xml(alignParentBottom =「真」)的視圖整個相對佈局

機器人:windowSoftInputMode =「adjustResize」

(3)如果我們不想沒有它具有相對佈局,然後在下面設置線路(alignParentBottom =「真」)的觀點來調整整個佈局相對在活動的manifest.xml標籤

機器人:windowSoftInputMode = 「adjustPan | adjustResize」

(4)如果我們刪除線的android:從manifest.xml中windowSoftInputMode那麼它會像(2)選項