安卓工具栏在键盘显示时向上移动
问题描述:
我的项目中有软键盘问题。安卓工具栏在键盘显示时向上移动
我在我的Activity中有一个EditText,listview和一个发送按钮的聊天屏幕。每当Edittext获得焦点它向上移动工具栏和布局。
我需要修复显示键盘时的工具栏和布局。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/relheader"
android:layout_width="fill_parent"
android:layout_height="58dp"
android:background="@color/blue"
android:gravity="center"
android:isScrollContainer="false">
<android.support.v7.widget.Toolbar
android:id="@+id/customtoolbar_back"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:minHeight="?attr/actionBarSize"
android:weightSum="1">
<TextView
android:id="@+id/idtextheaderprojectchatwithprivatemessage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Messages"
android:textColor="@color/white"
android:textSize="20dp"
android:textStyle="bold" />
</android.support.v7.widget.Toolbar>
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_weight="75"
android:orientation="vertical">
<ListView
android:id="@+id/listViewwallpage"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/relfb"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:cacheColorHint="@android:color/transparent"
android:divider="@android:color/transparent"
android:dividerHeight="0dp"
android:fadingEdge="none"
android:listSelector="@android:color/transparent"
android:overScrollMode="never" />
</LinearLayout>
<RelativeLayout
android:id="@+id/relfb"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_gravity="right"
android:layout_marginTop="5dp"
android:background="@drawable/edittext_top_line"
android:minHeight="42dp"
android:paddingBottom="5dp"
android:paddingTop="5dp">
<EditText
android:id="@+id/edtserach"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="5dp"
android:layout_toLeftOf="@+id/lin"
android:background="@drawable/greyedittext_background"
android:hint="Type something..."
android:inputType="textMultiLine"
android:maxLength="160"
android:singleLine="true"
android:textColor="#000000" />
<LinearLayout
android:id="@+id/lin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:orientation="vertical">
<TextView
android:id="@+id/tvtextcount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal"
android:hint=""
android:textSize="12sp"
android:visibility="gone" />
<Button
android:id="@+id/btnsend"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:background="@android:color/transparent"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:text="Send"
android:textAllCaps="false"
android:textColor="@color/blue"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
</RelativeLayout>
我的RelativeLayout的工具栏和LinearLayout中的列表视图。 有什么建议吗?
答
检查您的清单以了解您的Activity
。您可能需要重新配置如何处理输入法。请参阅this documentation。
指定如何使你的UI应该响应
当输入法出现在屏幕上,它减少了可用于您的应用程序的UI空间量。系统会决定如何调整UI的可见部分,但可能无法正确显示。为确保您的应用具有最佳行为,您应该指定您希望系统如何在剩余空间中显示您的用户界面。
答
在参与活动的AndroidManifest.xlm
地说:
android:windowSoftInputMode="adjustResize"
答
在清单:
机器人:windowSoftInputMode = “stateAlwaysHidden”
添加到相应的活动代码。
更改工具栏如下:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/apptool_bar_bg"
android:minHeight="?attr/actionBarSize"
app:layout_scrollFlags="scroll|enterAlways|snap"
android:theme="@style/AppTheme.Toolbar"
app:titleTextAppearance="@style/AppTheme.Toolbar.Title"></android.support.v7.widget.Toolbar>
答
我想你已经包含在清单的活动android:windowSoftInputMode="adjustResize"
或android:windowSoftInputMode="adjustPan"
。
如果您将它添加到清单中,请删除这些行。
这不适合我。 –
在清单中,你必须把它放到你有问题的活动中,如果你把它放在另一个地方,它什么都不会做 –