当keyboad显示时,Android工具栏会向上移动

时间:2017-08-10 13:44:06

标签: android xml xml-layout

  

我的项目有软键盘问题。

我有一个聊天屏幕,其中有一个EditText,listview和一个发送按钮,我的Activity.Whenever 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和listview的Linearlayout。    有什么建议?

4 个答案:

答案 0 :(得分:0)

检查您的Activity的清单。您可能需要重新配置如何处理输入方法。请参阅this documentation

  

指定用户界面的响应方式

     

当输入法出现在屏幕上时,它会减少应用UI的可用空间。系统会决定如何调整UI的可见部分,但可能无法正确完成。为确保应用程序的最佳行为,您应指定系统在剩余空间中显示UI的方式。

答案 1 :(得分:0)

在AndroidManifest.xlm中涉及的活动放置:

android:windowSoftInputMode="adjustResize" 

答案 2 :(得分:0)

在Manifest中:

机器人:windowSoftInputMode =&#34; stateAlwaysHidden&#34;

添加到相应的活动代码。

更改工具栏如下:

<?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>

答案 3 :(得分:0)

我认为您已在活动清单中加入了android:windowSoftInputMode="adjustResize"android:windowSoftInputMode="adjustPan"

如果您在清单中添加了行,请删除这些行。