2014-03-28 60 views
0

我有一個簡單的佈局,如下圖所示:XML安卓:windowSoftInputMode工作不正是我想要

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

    <ScrollView 
     android:layout_width="match_parent" 
     android:layout_height="200dp" 
     android:fadeScrollbars="false" 
     android:gravity="center_vertical" > 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:lineSpacingMultiplier="1.2" /> 
    </ScrollView> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:descendantFocusability="beforeDescendants" 
     android:focusableInTouchMode="true" 
     android:orientation="vertical" > 

     <EditText 
      android:layout_width="match_parent" 
      android:layout_height="290dp" 
      android:ems="10" 
      android:gravity="top" /> 

     <Button 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="Submit"/> 
    </LinearLayout> 

</RelativeLayout> 

基本上,有一個ScrollView,指出問題的內部TextView,和我想要的用戶在EditText內輸入答案。

在我AndroidManifest,我已經包括以下內容:

<activity 
    android:screenOrientation="portrait" 
    android:windowSoftInputMode="???" > 
</activity> 

凡 「???」是,我試過使用以下內容:adjustPan,adjustResizeadjustPan|adjustResize

隨着adjustPanadjustResize,我遇到了同樣的事情:當我鍵入和文本離開視圖,屏幕自動向下滾動,因此鍵盤不包括正在鍵入的文本。然而,這裏的問題在於,當我嘗試突出顯示所鍵入的文本以選擇全部,複製,剪切或粘貼時,通常出現在頂部的複製/剪切/粘貼菜單欄無法被觸及,因爲它已被滾出看法。如果我嘗試手動到達該菜單欄,則文本不再突出顯示。

使用adjustPan|adjustResize時,複製/剪切/粘貼菜單欄保持在視圖內和觸手可及的範圍內,但如果輸入得太多,鍵入的文本最終會被鍵盤遮擋。

那麼我怎麼能仍然鍵入輸入的文本永遠不會被遮擋,並仍然有複製/剪切/粘貼菜單欄,並允許我根據需要偶爾進行編輯?

回答

0

原來,這個問題根本與android:windowsSoftInputMode無關。只有當通知欄可見時,複製/剪切/粘貼欄才能正常工作。當通知欄被刪除時,複製/剪切/粘貼欄的行爲不正常。

爲了避免看到在頂部有明顯的黑條,一個方法來解決,這是使用方法:

View decorView = getWindow().getDecorView(); 
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN; 
decorView.setSystemUiVisibility(uiOptions); 

所以,雖然現在的工作,活動的外觀是不是100%我怎麼會喜歡。如果任何人有比這更好的解決方法,請發表評論。