【问题标题】:the toolbar moves up when keyboard appears出现键盘时工具栏向上移动
【发布时间】:2017-11-08 15:59:25
【问题描述】:

我有一个mainActivity 有2 个Fragments

mainActivity 具有 AppBar 包含 Toolbar

其中一个Fragments 有2 个EditTexts

image 1

当我点击其中一个EditText 时,键盘出现

image 2

但是当你看到Toolbar(上面有2张图片)消失了。

即使我向下移动键盘它仍然是这样的

image 3

我尝试添加

android:windowSoftInputMode="adjustPan" 

到我的MainActivity Manifest,但它仍然不起作用。

我尝试添加

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

到片段的onCreateView,但还是不行。

请,即使出现键盘,也能显示应用栏的任何帮助。

对不起,我的英语不好。

activity_main xml:

<android.support.design.widget.CoordinatorLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.example.lenovo.myapplication.MainActivity">

<android.support.v4.view.ViewPager
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior" />

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="0dp"
    android:layout_height="0dp" />

<android.support.design.widget.AppBarLayout
    android:id="@+id/appbar"
    android:layout_width="match_parent"
    android:layout_height="230dp"

android:background="@android:drawable/screen_background_light_transparent"
    android:gravity="top">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="185dp"
        android:background="@drawable/pic"
        android:gravity="top"
        android:weightSum="1"
        app:layout_scrollFlags="scroll|enterAlways">

        <ImageView
            android:id="@+id/btn_exit"
            android:layout_width="wrap_content"
            android:layout_height="25dp"
            android:layout_gravity="right"
            android:layout_weight="0.29"
            android:background="@drawable/exit" />

        <ImageView
            android:layout_width="60dp"
            android:layout_height="59dp"
            android:layout_alignParentLeft="true"
            android:layout_gravity="top|left"
            android:layout_weight="0.38"
            android:background="@drawable/logo" />
    </android.support.v7.widget.Toolbar>

    <android.support.design.widget.TabLayout
        android:id="@+id/tabs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/transparent" />
  </android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>

mon_compte 片段 xml:

<android.support.constraint.ConstraintLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

tools:context="com.example.lenovo.myapplication.
MainActivity$PlaceholderFragment">

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

    <LinearLayout
        android:layout_width="368dp"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        tools:layout_editor_absoluteX="8dp"
        tools:layout_editor_absoluteY="8dp">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            tools:layout_editor_absoluteX="8dp"
            tools:layout_editor_absoluteY="8dp">

            <EditText
                android:id="@+id/txt_email"
                android:layout_width="275dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:drawableLeft="@drawable/ic_email"
                android:ems="10"
                android:hint=" Votre E-mail"
                android:inputType="textPersonName"
                android:visibility="visible" />

            <EditText
                android:id="@+id/txt_mdp"
                android:layout_width="275dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:drawableLeft="@drawable/ic_lock"
                android:ems="10"
                android:hint=" Mot de passe"
                android:inputType="textPassword"
                android:password="true"
                android:visibility="visible" />

            <Button
                android:id="@+id/btn_enter"
                android:layout_width="275dp"
                android:layout_height="25dp"
                android:layout_gravity="center_horizontal"
                android:layout_marginTop="5dp"
                android:background="@drawable/conexbtn"
                android:text="Connexion"
                android:textAllCaps="false"
                android:textColor="@android:color/background_light"
                android:visibility="visible" />

            <com.facebook.login.widget.LoginButton
                android:id="@+id/btn_face"
                android:layout_width="275dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:layout_marginTop="10dp"
                android:background="@drawable/facebtn"
                android:text="Se connecter avec Facebook"
                android:textAllCaps="false"
                android:textColor="@android:color/background_light"
                android:visibility="visible" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="5dp"
                android:orientation="horizontal"
                tools:layout_editor_absoluteX="17dp"
                tools:layout_editor_absoluteY="258dp">

                <Button
                    android:id="@+id/btn_mdpo"
                    style="?android:attr/borderlessButtonStyle"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="0.18"
                    android:backgroundTint="@android:color/transparent"
                    android:onClick="btn_mdpo"
                    android:paddingLeft="50dp"
                    android:text="Mot de passe oublié?"
                    android:textAllCaps="false"
                    android:textColor="#bfbfbf"
                    android:textSize="13sp" />

                <Button
                    android:id="@+id/btn_i"
                    style="?android:attr/borderlessButtonStyle"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="0.18"
                    android:backgroundTint="@android:color/transparent"
                    android:onClick="btn_i"
                    android:paddingRight="50dp"
                    android:text="Nouveau sur wach?"
                    android:textAllCaps="false"
                    android:textColor="#bfbfbf"
                    android:textSize="13sp" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="200dp"
                android:orientation="vertical">

                <Button
                    android:id="@+id/btn_sht"
                    style="?android:attr/borderlessButtonStyle"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="bottom|right"
                    android:layout_weight="0.18"
                    android:backgroundTint="@android:color/transparent"
                    android:onClick="btn_sht"
                    android:paddingRight="50dp"
                    android:text="by Soft High Tech"
                    android:textAllCaps="false"
                    android:textColor="#000000"
                    android:textSize="14sp" />
            </LinearLayout>
        </LinearLayout>
      </LinearLayout>
   </LinearLayout>
</android.support.constraint.ConstraintLayout>

【问题讨论】:

    标签: android android-fragments android-edittext android-softkeyboard android-appbarlayout


    【解决方案1】:

    在你的清单上添加

    android:windowSoftInputMode="adjustResize"
    

    如果它不适用于您的父布局,请添加

    android:fitsSystemWindows="true"
    

    【讨论】:

    • 移除 getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
    【解决方案2】:

    尝试使用RelativeLayout 作为您的顶级父级(您可能需要重构一些部分,以便布局看起来与以前相同。为此,您可以使用android:layout_belowandroid:layout_above。单击here 获取更多信息...)并在其中设置android:fitsSystemWindows="true"。另外,在工具栏中添加android:layout_alignParentTop="true"

    【讨论】:

    • 当我在activity_main xml中通过RelativeLayout更改CoordinatorLayout时,工具栏保持不变..但是片段的组件向上移动! imgur.com/a/cOsjT
    • 是的,这很正常。您必须包含 android:layout_below 和 android:layout_above 以根据需要对齐组件。我将在答案中包含一个链接供您阅读。
    【解决方案3】:

    试试这个..它会解决你的问题

                android:windowSoftInputMode="adjustNothing"
    

    【讨论】:

      猜你喜欢
      • 2012-08-13
      • 1970-01-01
      • 1970-01-01
      • 2018-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-20
      相关资源
      最近更新 更多