2017-08-07 33 views
0

我有設計如下代碼的佈局,但有EditText,Listview和3按鈕。 因此,這3個按鈕全部添加到父佈局的底部。但是當我點擊EditText寫東西時,那些按鈕就像附加的圖像一樣顯示。但我需要將該按鈕保留在底部而不會出現在移動鍵盤的上方。按鈕沒有顯示在Android的底部

<?xml version="1.0" encoding="utf-8"?> 
<layout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto"> 

<RelativeLayout 
    android:id="@+id/mainLay" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@android:color/white" 
    android:orientation="vertical"> 



    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/layout" 
     android:orientation="vertical" 
     android:padding="@dimen/activity"> 

     <LinearLayout 
      android:id="@+id/top" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" 
      android:padding="4dp"> 

      <EditText 
       android:id="@+id/vehicleId" 
       android:layout_width="0dp" 
       android:layout_height="@dimen/height_row" 
       android:layout_gravity="center_vertical" 
       android:layout_weight="0.5" 
       android:background="@null" 
       android:gravity="center_vertical" 
       android:hint="@string/enter_vehicle_id" 
       android:lines="1" 
       android:paddingLeft="6dp" 
       android:singleLine="true" 
       android:textColor="@color/darkGrey" 
       android:textColorHint="@color/darkGrey" 
       android:textSize="@dimen/normal" 
       app:font="@{@string/font_roboto_regular}" /> 

      <View 
       android:layout_width="1dp" 
       android:layout_height="match_parent" 
       android:background="@color/viewColor" /> 

      <EditText 
       android:id="@+id/mileage" 
       android:layout_width="0dp" 
       android:layout_height="@dimen/height_row" 
       android:layout_marginLeft="5dp" 
       android:layout_marginStart="5dp" 
       android:layout_weight="1" 
       android:background="@null" 
       android:hint="@string/enter_mileage" 
       android:imeOptions="actionNext" 
       android:inputType="text" 
       android:lines="1" 
       android:paddingLeft="5dp" 
       android:singleLine="true" 
       android:textColor="@color/darkGrey" 
       android:textColorHint="@color/darkGrey" 
       android:textSize="@dimen/normal" 
       app:font="@{@string/font_roboto_regular}" /> 

     </LinearLayout> 

     <View 
      android:id="@+id/topView" 
      android:layout_width="match_parent" 
      android:layout_height="1dp" 
      android:layout_below="@+id/top" 
      android:background="@color/viewColor" /> 

     <ListView 
      android:id="@+id/listView" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_above="@+id/bottomView" 
      android:layout_below="@+id/top" 
      android:layout_marginTop="10dp" 
      android:paddingTop="@dimen/activity" /> 

     <LinearLayout 
      android:id="@id/bottomView" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_marginTop="10dp" 
      android:orientation="vertical"> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:gravity="bottom" 
       android:orientation="horizontal"> 

       <Button 
        android:id="@+id/scan" 
        android:layout_width="0dp" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center_vertical" 
        android:layout_weight="1" 
       android:background="@drawable/sel_rounded_rectangle_color1_2" 
        android:gravity="center" 
        android:minHeight="@dimen/min_touch" 
        android:text="@string/scan" 
        android:textAllCaps="false" 
        android:textColor="@color/white" 
        android:textSize="22sp" 
        app:font="@{@string/font_roboto_regular}" /> 

       <Button 
        android:id="@+id/manual" 
        android:layout_width="0dp" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center_vertical" 
        android:layout_marginLeft="@dimen/activity" 
        android:layout_marginStart="@dimen/activity" 
        android:layout_weight="1" 
        android:background="@drawable/sel_rounded_rectangle_color1_2" 
        android:gravity="center" 
        android:minHeight="@dimen/min_touch" 
        android:text="@string/manual" 
        android:textAllCaps="false" 
        android:textColor="@color/white" 
        android:textSize="22sp" 
        app:font="@{@string/font_roboto_regular}" /> 

      </LinearLayout> 

      <Button 
       android:id="@+id/submit" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center_vertical" 
       android:layout_marginTop="@dimen/activity" 
       android:background="@drawable/sel_rounded_rectangle_color1_2" 
       android:gravity="center" 
       android:minHeight="@dimen/min_touch" 
       android:text="@string/submit" 
       android:textAllCaps="false" 
       android:textColor="@color/white" 
       android:textSize="22sp" 
       app:font="@{@string/font_roboto_regular}" /> 
     </LinearLayout> 

     <ProgressBar 
      android:id="@+id/progressBar" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true" 
      android:layout_centerVertical="true" 
      android:indeterminate="true" 
      android:visibility="gone" /> 
    </RelativeLayout> 

</RelativeLayout> 
</layout> 

在此先感謝。

+0

你有沒有嘗試使用的LinearLayout通過你的佈局? – Mocas

+0

如果我試過,然後listview不能設置底部視圖 – CarinaMj

+1

https://stackoverflow.com/questions/13277785/how-to-have-a-fixed-footer-with-scrollview-in-android可能會幫助你。即按鈕應該在頁腳 –

回答

2

添加windowSoftInputMode = 「adjustPan」到您的活動。如果它是片段,請將其添加到conatainer活動中。

<activity android:name="MyActivity" 
... 
android:windowSoftInputMode="adjustPan" 
... 
</activity> 
+0

你是什麼意思,如果這個片段? – CarinaMj

+0

如果編輯文本位於片段的視圖中。將該屬性添加到包含您的片段的活動。 – SunSun

+0

如何爲一個片段做到這一點? – CarinaMj

1

只需在此的Manifest.xml代碼添加到您的活動標籤文件

<activity 
... 
android:windowSoftInputMode="adjustPan"> 
</activity> 
+0

這是爲片段,那麼我怎麼可以添加此代碼? – CarinaMj

+1

添加到附加的片段的哪個活動中。 – Fr099y

0

在您的清單,

<activity 
    .. 
    android:windowSoftInputMode="adjustNothing"> 
</activity> 

請注意,這會停止推佈局並重疊 按鈕顯示軟鍵盤時。

1

嘗試一下本作的片段:

getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);