在全屏活动中打开键盘时,如何避免移动工具栏?

时间:2019-01-08 11:40:53

标签: android android-layout

在我的应用中,调用键盘时,工具栏将向上移动。如何防止工具栏向上移动?

以下是使活动全屏显示的代码:

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE);

布局:

<RelativeLayout xmlns:android=".."
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">
    <android.support.design.widget.AppBarLayout
        android:layout_alignParentTop="true" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:background="@drawable/toolbar_background">

        <include layout="@layout/layout_toolbar" />
    </android.support.design.widget.AppBarLayout>

    <ScrollView.......>

    <RelativeLayout......>

    <EditText....><!--There are multiple EditTexts here.-->

</RelativeLayout>

3 个答案:

答案 0 :(得分:1)

在清单中为Activity添加此行

android:windowSoftInputMode="adjustResize"

答案 1 :(得分:0)

在工具栏的根布局中添加android:fitsSystemWindows="true"

  

在大多数情况下,您的应用无需在状态栏或   导航栏,但如果要这样做:您需要确保交互式   元素(如按钮)并未隐藏在其下方。那就是   android:fitsSystemWindows =“ true”属性的默认行为   给您:它设置视图的填充以确保内容   不要覆盖系统窗口。

     

请记住以下几点:

     

fitsSystemWindows首先应用深度-排序问题:这是   消耗差异的插图的第一个视图

来自https://medium.com/androiddevelopers/why-would-i-want-to-fitssystemwindows-4e26d9ce1eec

基本上,您是在告诉工具栏不要移动并停留在顶部,而是将其下方的视图向上移动至其下方

答案 2 :(得分:0)

如果在AppBarLayout中适合您的UI要求,则可以使用CollapsingToolBarLayout。

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <android.support.design.widget.CollapsingToolbarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <android.support.v7.widget.Toolbar 
           xmlns:android="http://schemas.android.com/apk/res/android"
           xmlns:ripple="http://schemas.android.com/apk/res-auto"
           android:id="@+id/tv_toolbar"
           android:layout_width="match_parent"
           android:layout_height="50dp"
           android:background="#fff"
           ripple:contentInsetStart="0dp">
        </android.support.v7.widget.Toolbar>

    </android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>