软键盘隐藏工具栏
Soft Keyboard Hides Toolbar
我在布局中使用了工具栏。每当我打开 activity 并关注编辑文本时,它就会隐藏工具栏。请看下面的图片
下面是我的布局文件:
<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"
也没有帮助。
如何避免在键盘打开时隐藏工具栏。
我建议您为工具栏创建一个不同的布局并将其包含在您的 activity
创建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(假设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>
如果有效,试试这个!!!
在 AndroidManifest.xml 中添加 android:windowSoftInputMode="adjustResize"
解决了我的问题,例如:
<activity
android:name=".MainActivity"
android:label="@string/activity_main"
android:windowSoftInputMode="adjustResize">
</activity>
我在布局中使用了工具栏。每当我打开 activity 并关注编辑文本时,它就会隐藏工具栏。请看下面的图片
下面是我的布局文件:
<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"
也没有帮助。
如何避免在键盘打开时隐藏工具栏。
我建议您为工具栏创建一个不同的布局并将其包含在您的 activity
创建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(假设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>
如果有效,试试这个!!!
在 AndroidManifest.xml 中添加 android:windowSoftInputMode="adjustResize"
解决了我的问题,例如:
<activity
android:name=".MainActivity"
android:label="@string/activity_main"
android:windowSoftInputMode="adjustResize">
</activity>