2011-01-27 86 views
2

我所擁有的是以照片爲主要背景的照片上傳活動,以及底部的編輯文本和一組按鈕。當我點擊edittext時,我想讓軟鍵盤將edittext和按鈕向上推(使它們仍然可見)並保持背景圖像相同。然而,現在它只是將它推到足以看到edittext的第一行,並且我的所有按鈕都被隱藏了。在Android中,如何將視圖添加到軟鍵盤?

我基本上想以某種方式將視圖附加到軟鍵盤上,並讓其餘的活動獨自一人。我已經嘗試在清單中設置windowSoftInputMode標誌,但沒有任何選項產生我想要的效果(我不希望佈局調整大小,並且pan看起來沒有任何影響)。我如何實現這樣的事情?

+0

不知道我是否正確理解了這種情況,但是無法將圖像設置爲根佈局背景資源,並且不必擔心其調整大小,而其餘佈局可以通過鍵盤上下移動? – ANemati 2017-01-12 21:40:37

回答

1

不幸的是,在當前的SDK中,當軟鍵盤顯示並消失時,我們對系統的仁慈程度有點不解。實現您正在查找的行爲的最佳方法是在窗口中保留默認輸入模式,並確保您的視圖中有一個可滾動元素。請記住,當隱藏鍵盤(內容小於滾動視圖)時,此元素不需要滾動,但當鍵盤顯示時,它將摺疊可滾動視圖的大小並保留其他所有內容。

下面是一個例子。比方說,這是你的RES /佈局/ main.xml中:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <LinearLayout 
    android:id="@+id/control" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:orientation="vertical"> 
    <EditText 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"/> 
    <Button 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="A Button"/> 
    </LinearLayout> 
    <ScrollView 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_above="@id/control"> 
    </ScrollView> 
</RelativeLayout> 

試試這個爲基本活動的根佈局,你會看到整個LinearLayout上下滑動的鍵盤,因爲Android是調整ScrollView的視口,而不是向上滑動視圖JUST足以顯示焦點輸入元素(您現在看到的)。

+0

感謝您的回覆。我也嘗試了這一點,但後來我遇到了這樣的問題,即如果背景圖像大於可視區域,它將伸展並可滾動。這是我想要避免的。如果圖像隨鍵盤向上滾動,那很好,但是當鍵盤沒有彈起時,我不希望任何東西足夠大以至於無法滾動(所以我希望我的圖像佔據可視空間,不再需要)。我確信有一個解決方案涉及獲取設備寬度和高度,並以編程方式調整圖片大小,但我想避免使用常量。 – 2011-01-28 14:44:22