Вложенный ScrollView оставляет дополнительное пространство сверху - PullRequest
0 голосов
/ 20 мая 2019

У меня NestedScrollView под AppBarLayout только с одним ребенком - LinearLayout.У них обоих нет отступов и полей сверху, но все же остается некоторое пространство (принадлежащее NestedScrollView, как я могу видеть, устанавливая цвет для фона) поверх NestedScrollView.Как удалить это?

Я пытался установить android:fillViewport="true" в NestedScrollView, но не получил результата.

UPD: это пространство взаимодействует с флагом clipNoPadding, но установка всех отступов в 0 делаетне поможет.

<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:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">

    <android.support.v4.widget.NestedScrollView
        android:id="@+id/scroll"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clipToPadding="false"
        android:background="@color/colorAccent"
        android:fillViewport="true"
        app:layout_behavior="android.support.design.widget.AppBarLayout$ScrollingViewBehavior">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@color/colorPrimary"
            android:orientation="vertical">

            <Button
                android:id="@+id/button"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Button" />

            // and some more buttons, just to fill the space

        </LinearLayout>

    </android.support.v4.widget.NestedScrollView>

    <android.support.design.widget.AppBarLayout
        android:id="@+id/app_bar_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        android:fitsSystemWindows="true"
        android:background="@color/colorTransparent">

        // I omit some code, as not-belonging to the question

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

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

как это выглядит

1 Ответ

0 голосов
/ 20 мая 2019

Атрибут android:fitsSystemWindows="true" добавит некоторый (обычно, но не всегда, 24dp) верхний отступ к виду, к которому он применяется. Он предназначен для использования рядом с прозрачной или полупрозрачной строкой состояния (или панелью навигации), чтобы содержимое вашего представления не отображалось «под» строкой состояния.

На скриншоте не похоже, что вы используете прозрачную строку состояния, так что это просто добавит 24dp отступов, которые вам не нужны. Удалить его.

Также обратите внимание, что android:fitsSystemWindows будет переопределять любой другой отступ в представлении, которое его использует. Поэтому, даже если вы вручную установите заполнение на 0, вы все равно получите заполнение на 24 дп.

...