2015-05-13 32 views
0

我需要顯示一個TextView視圖作爲字符計數器和兩個EditText。一個輸入主題,另一個輸入消息。軟鍵彈出時如何設置可滾動視圖?

但是當顯示鍵盤時,視圖無法滾動。鍵盤隱藏視圖的下半部分。

我需要鍵盤顯示時,視圖適合剩餘空間,並允許用戶點擊並滾動視圖,類似於撰寫郵件的gmail視圖。

這裏是我的佈局不爲我工作:

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" > 

     <include 
      android:id="@+id/toolbar" 
      layout="@layout/toolbar" > 
     </include> 

     <ScrollView 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:isScrollContainer="true" > 

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

       <android.support.v7.widget.AppCompatTextView 
        android:id="@+id/caracter_counter" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="end" 
        android:paddingBottom="5dip" 
        android:paddingLeft="5dip" 
        android:paddingRight="5dip" 
        android:paddingTop="10dip" 
        android:textAppearance="@style/TextAppearance.AppCompat.Medium" 
        android:textColor="?android:textColorPrimary" /> 

       <android.support.v7.widget.AppCompatEditText 
        android:id="@+id/subject" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_marginBottom="25dip" 
        android:hint="Subject" 
        android:inputType="textMultiLine" 
        android:maxLength="@integer/max_length" 
        android:nextFocusDown="@+id/edit_message" 
        android:textAppearance="@style/TextAppearance.AppCompat.Medium" 
        android:textColor="?android:textColorPrimary" /> 

       <android.support.v7.widget.AppCompatEditText 
        android:id="@+id/message" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:hint="Message" 
        android:inputType="textMultiLine" 
        android:textAppearance="@style/TextAppearance.AppCompat.Medium" 
        android:textColor="?android:textColorPrimary" /> 
      </LinearLayout> 
     </ScrollView> 

    </LinearLayout> 

我在清單中設置android:windowSoftInputMode="adjustResize",但它不工作。

像這樣:

enter image description here

編輯

我嘗試用這個,但不行,softkeyword不推滾動型,第二是的EditText由softkeyword蓋。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <include 
     android:id="@+id/toolbar" 
     layout="@layout/toolbar" > 
    </include> 

    <ScrollView 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_below="@id/toolbar" 
     android:fillViewport="true" > 

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

      <android.support.v7.widget.AppCompatTextView 
       android:id="@+id/caracter_count" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_gravity="end" 
       android:layout_weight="0.2" 
       android:paddingBottom="5dip" 
       android:paddingLeft="5dip" 
       android:paddingRight="5dip" 
       android:paddingTop="10dip" 
       android:text="@string/app_name" 
       android:textAppearance="@style/TextAppearance.AppCompat.Medium" 
       android:textColor="?android:textColorPrimary" /> 

      <android.support.v7.widget.AppCompatEditText 
       android:id="@+id/edit_subject" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="25dip" 
       android:layout_weight="0.5" 
       android:hint="Subject" 
       android:inputType="textMultiLine" 
       android:maxLength="@integer/max_length" 
       android:nextFocusDown="@+id/edit_message" 
       android:textAppearance="@style/TextAppearance.AppCompat.Medium" 
       android:textColor="?android:textColorPrimary" /> 

      <android.support.v7.widget.AppCompatEditText 
       android:id="@+id/edit_message" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="2.3" 
       android:hint="Message" 
       android:inputType="textMultiLine" 
       android:textAppearance="@style/TextAppearance.AppCompat.Medium" 
       android:textColor="?android:textColorPrimary" /> 
     </LinearLayout> 
    </ScrollView> 

</RelativeLayout> 

得到這樣的:

enter image description here

我嘗試與清單android:windowSoftInputMode="stateVisible|adjustResize|adjustPan"的所有組合。

我在做什麼錯?

在此先感謝。

+0

您可能希望嘗試Android版本: windowSoftInputMode =「adjustPan」,而不是adjustSize。 –

+0

@ user2369063我嘗試,但關鍵字推動工具欄和關鍵字仍然隱藏edittext。 – mlozdev

+0

您可以發佈該問題的圖片嗎? – natario

回答

0

我遇到了同樣的問題。我使用相對佈局來修復而不是線性佈局,並按預期工作。您可以嘗試使用相對佈局。這並不難,因爲這不是一個複雜的佈局層次結構。

編輯

我試着用你給定的xml代碼。沒有對java代碼做任何修改。但刪除組件中的權重。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" > 

<!-- replaced your toolbar with a textview just for testing --> 

<TextView 
    android:id="@+id/toolbar" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" > 
</TextView> 

<ScrollView 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_below="@id/toolbar" 
    android:fillViewport="true" > 

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

     <!-- deleted weightsum --> 

     <TextView 
      android:id="@+id/caracter_count" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="end" 
      android:paddingBottom="5dip" 
      android:paddingLeft="5dip" 
      android:paddingRight="5dip" 
      android:paddingTop="10dip" 
      android:text="@string/app_name" 
      android:textColor="?android:textColorPrimary" /> 
     <!-- deleted weightsum --> 

     <EditText 
      android:id="@+id/edit_subject" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="25dip" 
      android:hint="Subject" 
      android:inputType="textMultiLine" 
      android:nextFocusDown="@+id/edit_message" 
      android:textColor="?android:textColorPrimary" /> 
     <!-- deleted weightsum --> 

     <EditText 
      android:id="@+id/edit_message" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:hint="Message" 
      android:inputType="textMultiLine" 
      android:textColor="?android:textColorPrimary" /> 
     <!-- deleted weightsum --> 
    </LinearLayout> 
</ScrollView> 

</RelativeLayout> 

試試這個。我認爲這是你正在尋找的。但如果您的要求合格,您將必須移除重量。

+0

我改變了滾動視圖內的線性佈局;但它不起作用,推動工具欄,我不能移動視圖。 – mlozdev

+0

啊不@mlozdev。您必須將外部佈局更改爲相對佈局。內部線性佈局將無關緊要。 –

+0

我使用更改編輯問題。你可以查看? – mlozdev

0

對不起,我遲到答覆,對不起硬編碼XML文件 下面的XML文件的工作就像一個魅力對我來說 試試這個人知道

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="#ffffff" > 

<include 
    android:id="@+id/toolbar" 
    layout="@layout/custon_action_calander_new_event" > 
</include> 
<ScrollView 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_below="@id/toolbar" 
    android:fillViewport="true" > 
    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     android:weightSum="3" > 
     <TextView 
      android:id="@+id/caracter_count" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="0.2" 
      android:paddingBottom="5dip" 
      android:paddingLeft="5dip" 
      android:paddingRight="5dip" 
      android:paddingTop="10dip" 
      android:text="wLHVBSHSD VHHHJBCVJHDBV" 
      android:textColor="#000000" /> 
     <EditText 
      android:id="@+id/edit_subject" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="25dip" 
      android:layout_weight="0.5" 
      android:hint="Subject" 
      android:textColor="#000000" /> 
     <EditText 
      android:id="@+id/edit_message" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="2.3" 
      android:hint="Message" 
      android:inputType="textMultiLine" 
      android:textColor="#000000" /> 
    </LinearLayout> 
</ScrollView> 

+0

我使用更改編輯問題。你可以查看? – mlozdev

相關問題