保持工具栏固定,其他视图不固定

时间:2016-11-29 15:11:24

标签: android android-layout android-softkeyboard window-soft-input-mode

我有以下布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    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="match_parent"
    android:layout_height="match_parent"
    android:animateLayoutChanges="true">

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

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

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

    <ScrollView
        android:id="@+id/scroll_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true">

        <!-- Content -->

    </ScrollView>

    <include layout="@layout/fixed_layout_when_keyboard_not_visible" />

</RelativeLayout>

在AndroidManifest中,我将android:windowSoftInputMode设置为adjustResize,当键盘可见时,它不会“挤压”内容并始终保持工具栏固定,即使我滚动也是如此。 但是,我在ScrollView的底部有另一个视图,我想要修复它,但同时当键盘弹出时不会阻止任何内容 - 现在它随键盘一起移动以下属性layout_gravity="bottom“。

我可以在键盘显示/隐藏时切换该布局的可见性,但这似乎不是最优雅的解决方案。你会建议什么?非常感谢任何帮助:)

2 个答案:

答案 0 :(得分:0)

您应该通过添加ScrollView告诉android:isScrollContainer="false"不注册为滚动容器来解决问题。您的新ScrollView应如下所示:

<ScrollView
     android:id="@+id/scroll_view"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:fillViewport="true"
     android:isScrollContainer="false">

        <!-- Content -->

</ScrollView>

答案 1 :(得分:0)

尝试以下代码

  <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        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="match_parent"
     android:orientation="vertical"
        android:layout_height="match_parent"
        android:animateLayoutChanges="true">

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

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />

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

        <ScrollView
            android:id="@+id/scroll_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fillViewport="true">

            <!-- Content -->

        </ScrollView>


    </RelativeLayout>