2016-05-19 68 views
0

我搜索了NET,但沒有找到解決我的問題的方法。我有一個幾個textViews和EditTexts的形式。在屏幕的底部,我定位了3個按鈕。爲了解決它們在屏幕的底部,我必須讓它們在scrollView之外,如How to make a static button under a ScrollView?中所解釋的。如何在scrollView的底部設置按鈕,使按鈕被軟鍵盤覆蓋

但是,當我在其中一個編輯文本中輸入文本時,軟鍵盤打開時,按鈕向上移動到軟鍵盤上方,覆蓋一些edittext元素。

我希望按鈕保持在屏幕的底部,使軟鍵盤覆蓋它們。爲了做到這一點,我必須將它們包含在scrollView中,但是當軟鍵盤關閉時,我無法將它們放置在屏幕的底部。

這裏是我的XML

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@color/bgcolor" 
android:orientation="vertical" 
android:paddingTop="5dp"> 

<LinearLayout 
    android:id="@+id/linearLayout2" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:visibility="visible"> 

    <TextView 
     android:id="@+id/list_title2" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:padding="10dp" 
     android:text="@string/xml_text_text" 
     android:textColor="@color/textColor" 
     android:visibility="gone" /> 

    <TextView 
     android:id="@+id/textView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:layout_marginTop="5dp" 
     android:gravity="center" 
     android:padding="10dp" 
     android:text="@string/category_adding" 
     android:textColor="@color/myColor" 
     android:textSize="18sp" 
     android:textStyle="bold" /> 

    <ScrollView 
     android:id="@+id/scrollView2" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:isScrollContainer="true" 
     android:orientation="vertical" 
     android:visibility="visible"> 

     <RelativeLayout 
      android:id="@+id/categoryLayout2" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginEnd="10dp" 
      android:layout_marginLeft="10dp" 
      android:layout_marginRight="10dp" 
      android:layout_marginStart="10dp" 
      android:orientation="vertical" 
      android:visibility="visible"> 

      <TextView 
       android:id="@+id/categoryQuestionNumber" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="@string/category_add_question_number" 
       android:textColor="@color/myColor" 
       android:textSize="18sp" /> 

      <talkie.feedback.NumberPickerHorizontal 
       android:id="@+id/horizontal_number_picker" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentEnd="true" 
       android:layout_alignParentRight="true" /> 

      <android.support.design.widget.TextInputLayout 
       android:id="@+id/questionPromptWrapper" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/categoryQuestionNumber" 
       android:layout_marginTop="2dp" 
       android:hint="@string/category_add_question"> 

       <android.support.design.widget.TextInputEditText 
        android:id="@+id/questionPrompt" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:drawableLeft="@drawable/user" 
        android:drawableStart="@drawable/user" 
        android:ems="45" 
        android:imeOptions="actionNext" 
        android:singleLine="true" 
        android:textColor="@color/myColor" 
        android:textSize="18sp" /> 
      </android.support.design.widget.TextInputLayout> 

      <android.support.design.widget.TextInputLayout 
       android:id="@+id/questionExplanationWrapper" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/questionPromptWrapper" 
       android:layout_marginTop="2dp" 
       android:hint="@string/category_add_explanation"> 

       <android.support.design.widget.TextInputEditText 
        android:id="@+id/questionExplanation" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:drawableLeft="@drawable/user" 
        android:drawableStart="@drawable/user" 
        android:ems="45" 
        android:imeOptions="actionDone" 
        android:singleLine="true" 
        android:textColor="@color/myColor" 
        android:textSize="18sp" /> 
      </android.support.design.widget.TextInputLayout> 

      <Button 
       android:id="@+id/add" 
       android:layout_width="130dp" 
       android:layout_height="30dp" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentStart="true" 
       android:layout_below="@+id/questionExplanationWrapper" 
       android:layout_marginLeft="20dp" 
       android:layout_marginStart="20dp" 
       android:background="@drawable/border_round_corners_thin_mycolor_bkg" 
       android:text="@string/category_add_add_question" 
       android:textColor="@color/simple_white" 
       android:textSize="13sp" 
       android:textStyle="bold" /> 

      <Button 
       android:id="@+id/delete" 
       android:layout_width="130dp" 
       android:layout_height="30dp" 
       android:layout_alignParentEnd="true" 
       android:layout_alignParentRight="true" 
       android:layout_below="@+id/questionExplanationWrapper" 
       android:layout_marginEnd="20dp" 
       android:layout_marginRight="20dp" 
       android:background="@drawable/border_round_corners_thin_mycolor_bkg" 
       android:text="@string/category_add_delete_question" 
       android:textColor="@color/simple_white" 
       android:textSize="13sp" 
       android:textStyle="bold" /> 

      <RelativeLayout 
       android:id="@+id/categoryLayout3" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/delete" 
       android:layout_marginTop="2dp" 
       android:background="@drawable/border_round_corners_thin_blue" 
       android:padding="10dp" 
       android:visibility="visible"> 

       <android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android" 
        android:id="@+id/recyclerview2" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:gravity="center" /> 
      </RelativeLayout> 
     </RelativeLayout> 
    </ScrollView> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_below="@+id/categoryLayout2" 
     android:layout_marginBottom="10dp" 
     android:layout_marginLeft="10dp" 
     android:layout_marginRight="10dp" 
     android:layout_marginTop="10dp" 
     android:orientation="horizontal" 
     android:visibility="visible" 
     android:weightSum="3"> 

     <Button 
      android:id="@+id/save2" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_vertical" 
      android:layout_weight="1" 
      android:background="@drawable/btn_background" 
      android:text="@string/save_action" 
      android:textAllCaps="false" 
      android:textColor="@color/simple_white" /> 

     <Button 
      android:id="@+id/return2" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_vertical" 
      android:layout_marginLeft="5dp" 
      android:layout_marginStart="5dp" 
      android:layout_weight="1" 
      android:background="@drawable/btn_background_blue" 
      android:text="@string/category_add_category" 
      android:textColor="@color/simple_white" 
      android:textStyle="bold" /> 

     <Button 
      android:id="@+id/exit2" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_vertical" 
      android:layout_marginLeft="5dp" 
      android:layout_marginStart="5dp" 
      android:layout_weight="1" 
      android:background="@drawable/btn_background_exit" 
      android:text="@string/register_return" 
      android:textAllCaps="false" 
      android:textColor="@color/simple_white" /> 

    </LinearLayout> 


</LinearLayout> 

+1

在您的清單中,有問題的活動,用'機器人:windowSoftInputMode =」 adjustPan「' –

+0

是的,它做到了。但我讀過adjustPan相比adjustResize可能導致問題的地方。你能詳細說明一下嗎? – Zvi

+0

我在我的應用程序中使用adjustPan的原因與您描述的完全相同,並且沒有問題。你能否詳細說明_「我在某處調整潘可以導致問題」_?你在哪裏讀到這個?什麼問題的王? –

回答

1

[發佈從我自己的評論答案]

在您的清單中,有問題的活動,請使用

android:windowSoftInputMode="adjustPan" 

我在我自己的應用程序中使用這完全sa我的理由(即底部的按鈕覆蓋正在輸入的文本) - 並且它按照我需要的方式工作。

0

在你的清單文件中,如果你把「android:windowsSoftInputMode =」adjustPan |調整重新調整「,然後刪除它

在刪除我在第一行中提到的內容後,嘗試在沒有」android:windowsSoftInputMode「的情況下運行應用程序,因爲對於我而言,它給了我相同的解決方案,以便您查找

但如果除去「windowsSoftInputMode」後不能正常工作,然後提供 「機器人:windowSoftInputMode =」 adjustPan「並運行應用程序