嵌套的ScrollView在顶部留有一些额外的空间

时间:2019-05-20 15:11:52

标签: java android xml scrollview nestedscrollview

我在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>

how it looks

2 个答案:

答案 0 :(得分:0)

android:fitsSystemWindows="true"属性将向其应用的视图中添加一些(通常但并非总是24dp)顶部填充。这是为了与透明或半透明的状态栏(或导航栏)一起使用,以便视图的内容不会出现在状态栏的“下方”。

在屏幕快照中,看起来好像您没有使用透明的状态栏,因此这只会添加您不需要的填充24dp。删除它。

还要注意,android:fitsSystemWindows覆盖使用该视图的其他填充。因此,即使您将填充手动设置为0,您仍将获得24dp填充。

答案 1 :(得分:-2)

您可以在线性布局中添加android:layout_marginTop="-25dp",以通过嵌套滚动视图Nested on top删除空间。