2015-10-25 148 views
6

我在我的佈局中使用了工具欄。每當我打開活動並關注編輯文本時,它都會隱藏工具欄。請參考下面的圖片軟鍵盤隱藏工具欄

Before Soft Keyboard opens up

After Soft Keyboard opens up

下面是我的佈局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" 
tools:context="com.example.sampleactivity"> 

<android.support.v7.widget.Toolbar 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:elevation="4dp" 
    android:background="@color/color_theme" 
    android:minHeight="?attr/actionBarSize"> 

    <TextView 
     android:id="@+id/toolbar_title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="left" 
     android:text="App" 
     android:textColor="@color/white" 
     android:textSize="24sp" /> 

    <Button 
     android:id="@+id/past_locations" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="right" 
     android:text="Next" 
     android:textColor="@color/white" 
     style="?android:attr/borderlessButtonStyle"/> 

</android.support.v7.widget.Toolbar> 

<LinearLayout 
    android:id="@+id/mapLayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_weight="1" 
    android:orientation="vertical"> 

    <RelativeLayout 
     android:id="@+id/mapView" 
     android:layout_width="match_parent" 
     android:layout_height="fill_parent" 
     android:layout_weight="1"> 

     <fragment 
      android:id="@+id/map" 
      android:name="com.google.android.gms.maps.SupportMapFragment" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      /> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 
    </RelativeLayout> 


    <EditText 
     android:id="@+id/label" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:hint="Title" 
     android:layout_marginLeft="16dp" 
     android:layout_marginRight="16dp" 
     android:singleLine="true" 
     /> 

    <AutoCompleteTextView 
     android:id="@+id/tags" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:hint="Enter" 
     android:layout_marginLeft="16dp" 
     android:layout_marginRight="16dp" 
     android:maxLines="3" 
     /> 

</LinearLayout> 

使用android:windowSoftInputMode="adjustPan"沒有幫助。

如何避免在鍵盤打開時隱藏我的工具欄。

回答

14

在AndroidManifest.xml中添加android:windowSoftInputMode="adjustResize"解決了我的問題,如:

<activity 
     android:name=".MainActivity" 
     android:label="@string/activity_main" 
     android:windowSoftInputMode="adjustResize"> 
</activity> 
2

我建議你創建工具條不同的佈局,包括它在你的活動

創建toolbar.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.Toolbar 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:elevation="4dp" 
    android:background="@color/color_theme" 
    android:minHeight="?attr/actionBarSize"> 

    <TextView 
     android:id="@+id/toolbar_title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="left" 
     android:text="App" 
     android:textColor="@color/white" 
     android:textSize="24sp" /> 

    <Button 
     android:id="@+id/past_locations" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="right" 
     android:text="Next" 
     android:textColor="@color/white" 
     style="?android:attr/borderlessButtonStyle"/> 

</android.support.v7.widget.Toolbar> 

您的活動(假設activity_main.xml

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

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

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

<LinearLayout 
    android:id="@+id/mapLayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_weight="1" 
    android:orientation="vertical"> 

    <RelativeLayout 
     android:id="@+id/mapView" 
     android:layout_width="match_parent" 
     android:layout_height="fill_parent" 
     android:layout_weight="1"> 

     <fragment 
      android:id="@+id/map" 
      android:name="com.google.android.gms.maps.SupportMapFragment" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      /> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 
    </RelativeLayout> 


    <EditText 
     android:id="@+id/label" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:hint="Title" 
     android:layout_marginLeft="16dp" 
     android:layout_marginRight="16dp" 
     android:singleLine="true" 
     /> 

    <AutoCompleteTextView 
     android:id="@+id/tags" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:hint="Enter" 
     android:layout_marginLeft="16dp" 
     android:layout_marginRight="16dp" 
     android:maxLines="3" 
     /> 

</LinearLayout> 

試試這個,如果它的工作原理!