62

我有一個<ScrollView>佈局:頁面滾動時,軟鍵盤彈出

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/my_scrollview" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    > 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" > 

     <EditText 
      android:id="@+id/input_one" 
      android:layout_width="300dp" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:inputType="number" > 

     <EditText 
      android:id="@+id/input_two" 
      android:layout_width="300dp" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:inputType="number" > 

     <EditText 
      android:id="@+id/input_three" 
      android:layout_width="300dp" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:inputType="number" > 

      <Button 
      android:id="@+id/ok_btn" 
      android:layout_width="200dp" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:layout_marginTop="20dp" 
      android:text="@string/ok_str" /> 

     </LinearLayout> 
</ScrollView> 

正如你看到的上面,簡單的佈局包括三個輸入字段和「確定」按鈕。

我跑我的上述佈局,當我在第一個輸入字段(@+id/input_one)挖掘應用,軟鍵盤就會從屏幕上,它第三輸入字段和底部彈出「確定「按鈕。

由於我使用<ScrollView>,我以爲我可以爲了看第三輸入字段和「OK」按鈕,這是由軟鍵盤,隱藏但網頁是不可滾動滾動一頁。爲什麼?如何擺脫它? 基本上,我想看到每個輸入字段和「確定」按鈕,即使彈出軟鍵盤。

+1

刪除,LinearLayout中應該是你外佈局,它會工作,我希望即使sofkeyboard彈出。 – 2012-04-03 07:51:34

+1

@pakshaheen當需要滾動視圖時,這並不能解決問題。 – Luten 2016-12-28 07:03:01

+0

這裏是工作代碼。 https://stackoverflow.com/questions/7417123/android-how-to-adjust-layout-in-full-screen-mode-when-softkeyboard-is-visible/44242034#44242034 – Venkat 2017-05-29 12:05:06

回答

9

Manifest定義windowSoftInputMode財產 <activity android:name=".MyActivity" android:windowSoftInputMode="adjustNothing">

+2

'adjustNothing'不是一個有效的值。 – 2012-10-13 21:56:12

+1

@JacobRas請檢查此鏈接:http://developer.android.com/reference/android/R.attr.html#windowSoftInputMode它的值爲「adjustNothing」:) – 2013-08-21 07:20:28

+5

'Manfist' :) :) – Sunkas 2015-06-17 10:29:12

3

退房這一點。

<activity android:name=".Calculator" android:windowSoftInputMode="stateHidden|adjustResize" android:theme="@android:style/Theme.Black.NoTitleBar"></activity> 
85

我固定我的問題通過定義下列屬性的<activity>AndroidManifest.xml中

android:windowSoftInputMode="stateVisible|adjustResize" 
+0

這對我很好 – Roon13 2016-10-27 11:08:42

33

好吧,我已經搜索幾個小時,現在發現問題,我發現它。

沒有像fillViewport="true"android:windowSoftInputMode="adjustResize"幫助我的變化。

我使用的是Android 4.4,這是大錯

android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" 

不知何故,全屏主題防止ScrollViews從滾動時的SoftKeyboard可見。

此刻,我結束了使用這個來代替:

android:theme="@android:style/Theme.Black.NoTitleBar 

我不知道如何與時間和電池電量顯示擺脫頂端系統吧,但至少我得到了這個問題。

希望這可以幫助其他有同樣問題的人。

編輯:我得到了我的情況有點變通方法,所以我張貼here

我不知道這是否會爲你工作,但它一定會幫助你理解和明確一些事情了。

編輯2:Here是另一個很好的話題,它會幫助你走向正確的方向,甚至解決你的問題。

+0

+ 1在我的情況下,狀態欄被隱藏在代碼中的第三方庫:'getWindow()。setFlags (WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);' – 2016-12-06 22:14:09

+0

@qweret如果我需要它們兩個呢?全屏幕和滾動。 – Prabs 2017-04-26 12:27:32

+0

@Prabs您是否找到任何解決方案?我也希望全屏和滾動 – Johny 2017-05-09 14:25:29

7

在沒有全屏模式下把這個你的清單中這樣

android:windowSoftInputMode="stateVisible|adjustPan" 

在您的清單

<activity 
    android:windowSoftInputMode="stateVisible|adjustPan" 
    android:name="com.example.patronusgps.MainActivity" 
    android:label="@string/app_name" > 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 

     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 
+1

我試過這個,但非常幸運,根本沒有運氣...但是,根視圖是**不是** ScrollView',而是一個'RelativeLayout',它包含一個'LinearLayout',然後包含'ScrollView' – 2017-10-02 17:28:31

+0

這是行不通的 – 2018-03-04 18:34:57

7

對於我的作品被放在活動清單此屬性附加傷害的唯一的事情:

android:windowSoftInputMode="stateHidden|adjustPan" 

要在打開活動時不顯示鍵盤並且不重疊底部 風景。

-1

其工作:

android:windowSoftInputMode="stateVisible|adjustPan" 

<activity 
 
    android:name=".DonateNow" 
 
    android:label="@string/title_activity_donate_now" 
 
    android:screenOrientation="portrait" 
 
    android:theme="@style/AppTheme" 
 
    android:windowSoftInputMode="stateVisible|adjustPan"> 
 
</activity>

+1

你剛剛複製@ЭнхжинАмарсайхан的回答 – 2016-09-28 10:22:40

1

<activity 
 
    android:name=".DonateNow" 
 
    android:label="@string/title_activity_donate_now" 
 
    android:screenOrientation="portrait" 
 
    android:theme="@style/AppTheme" 
 
    android:windowSoftInputMode="stateVisible|adjustPan"> 
 
</activity>

+3

你應該麻煩解釋你的代碼的作用,而不是僅僅發佈幹件代碼作爲答案。 – 2016-07-24 13:56:03

1

這只是爲我工作:

android:windowSoftInputMode="adjustPan" 
2

添加下面的Android清單文件中的代碼行下活動標籤

android:windowSoftInputMode="adjustResize" 
相關問題