使用约束布局和NestedScrollView的奇怪行为

时间:2017-05-23 00:23:18

标签: android android-layout android-constraintlayout android-nestedscrollview

我一直在尝试使用ConstraintLayout中的NestedScrollView进行以下布局,但是当ConstraintLayout放在时在NestedScrollView中,它会在视图底部添加不需要的空间。

以下是我将NestedScrollView更改为其他内容时的布局,例如LinearLayout(所需外观):

Correct View

当我将ConstraintLayouts放在NestedScrollView

中时会发生这种情况

bad view

生成第一张图片的XML文件:     `

<android.support.v4.widget.NestedScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

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

        <android.support.constraint.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <TextView
                android:id="@+id/active_listings_count"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginBottom="8dp"
                android:layout_marginEnd="8dp"
                android:layout_marginLeft="16dp"
                android:layout_marginRight="8dp"
                android:layout_marginStart="16dp"
                android:layout_marginTop="0dp"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintHorizontal_bias="0.0"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintRight_toRightOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/my_listings_title"
                app:layout_constraintVertical_bias="0.0"
                tools:text="8 Active Listings" />

            <TextView
                android:id="@+id/booked_count"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginBottom="8dp"
                android:layout_marginEnd="8dp"
                android:layout_marginLeft="8dp"
                android:layout_marginRight="8dp"
                android:layout_marginStart="16dp"
                android:layout_marginTop="0dp"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintHorizontal_bias="0.029"
                app:layout_constraintLeft_toRightOf="@+id/active_listings_count"
                app:layout_constraintRight_toRightOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/my_listings_title"
                app:layout_constraintVertical_bias="0.0"
                tools:text="0 Currently Booked" />

            <Button
                android:id="@+id/manage_listings"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginBottom="8dp"
                android:layout_marginEnd="8dp"
                android:layout_marginLeft="8dp"
                android:layout_marginRight="8dp"
                android:layout_marginStart="8dp"
                android:layout_marginTop="8dp"
                android:text="@string/manage_listings"
                android:theme="@style/AppTheme.Button"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintHorizontal_bias="0.0"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintRight_toRightOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/booked_count"
                app:layout_constraintVertical_bias="0.0" />

            <Button
                android:id="@+id/listing_history"
                android:layout_width="wrap_content"
                android:layout_height="48dp"
                android:layout_marginBottom="8dp"
                android:layout_marginEnd="16dp"
                android:layout_marginLeft="8dp"
                android:layout_marginRight="16dp"
                android:layout_marginStart="8dp"
                android:layout_marginTop="0dp"
                android:text="@string/view_listing_history"
                android:theme="@style/AppTheme.Button"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintHorizontal_bias="0.0"
                app:layout_constraintLeft_toRightOf="@+id/manage_listings"
                app:layout_constraintRight_toRightOf="parent"
                app:layout_constraintTop_toTopOf="@+id/manage_listings"
                app:layout_constraintVertical_bias="0.0" />

            <TextView
                android:id="@+id/my_listings_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginBottom="8dp"
                android:layout_marginEnd="16dp"
                android:layout_marginLeft="16dp"
                android:layout_marginRight="16dp"
                android:layout_marginStart="16dp"
                android:layout_marginTop="24dp"
                android:text="@string/my_listings"
                android:textAppearance="@style/AppTheme.TextAppearance.Medium"
                android:textColor="@color/colorPrimary"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintHorizontal_bias="0.0"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintRight_toRightOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintVertical_bias="0.0" />

        </android.support.constraint.ConstraintLayout>

        <android.support.constraint.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <Button
                android:id="@+id/rental_history"
                android:layout_width="wrap_content"
                android:layout_height="48dp"
                android:layout_marginBottom="8dp"
                android:layout_marginEnd="16dp"
                android:layout_marginLeft="8dp"
                android:layout_marginRight="16dp"
                android:layout_marginStart="8dp"
                android:text="@string/rental_history"
                android:theme="@style/AppTheme.Button"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintHorizontal_bias="0.0"
                app:layout_constraintLeft_toRightOf="@+id/view_rentals"
                app:layout_constraintRight_toRightOf="parent"
                app:layout_constraintTop_toTopOf="@+id/view_rentals"
                app:layout_constraintVertical_bias="0.0" />

            <Button
                android:id="@+id/view_rentals"
                android:layout_width="wrap_content"
                android:layout_height="48dp"
                android:layout_marginBottom="8dp"
                android:layout_marginEnd="8dp"
                android:layout_marginLeft="8dp"
                android:layout_marginRight="8dp"
                android:layout_marginStart="8dp"
                android:layout_marginTop="8dp"
                android:text="@string/view_rentals"
                android:theme="@style/AppTheme.Button"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintHorizontal_bias="0.029"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintRight_toRightOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/current_rentals"
                app:layout_constraintVertical_bias="0.0" />

            <TextView
                android:id="@+id/current_rentals"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginBottom="8dp"
                android:layout_marginEnd="8dp"
                android:layout_marginLeft="8dp"
                android:layout_marginRight="8dp"
                android:layout_marginStart="16dp"
                android:layout_marginTop="0dp"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintHorizontal_bias="0.0"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintRight_toRightOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/my_rentals"
                app:layout_constraintVertical_bias="0.0"
                tools:text="Currently Renting 0 Spots" />

            <TextView
                android:id="@+id/my_rentals"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginBottom="8dp"
                android:layout_marginEnd="16dp"
                android:layout_marginLeft="16dp"
                android:layout_marginRight="16dp"
                android:layout_marginStart="16dp"
                android:text="@string/my_rentals"
                android:textAppearance="@style/AppTheme.TextAppearance.Medium"
                android:textColor="@color/colorPrimary"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintHorizontal_bias="0.0"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintRight_toRightOf="parent"
                app:layout_constraintVertical_bias="0.0"
                android:layout_marginTop="32dp" />

        </android.support.constraint.ConstraintLayout>

        <android.support.constraint.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <TextView
                android:id="@+id/reviews"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginBottom="8dp"
                android:layout_marginEnd="16dp"
                android:layout_marginLeft="16dp"
                android:layout_marginRight="16dp"
                android:layout_marginStart="16dp"
                android:layout_marginTop="32dp"
                android:text="@string/reviews"
                android:textAppearance="@style/AppTheme.TextAppearance.Medium"
                android:textColor="@color/colorPrimary"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintHorizontal_bias="0.0"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintRight_toRightOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintVertical_bias="0.0" />

            <Button
                android:id="@+id/view_listing_reviews"
                android:layout_width="wrap_content"
                android:layout_height="48dp"
                android:layout_marginBottom="8dp"
                android:layout_marginEnd="8dp"
                android:layout_marginLeft="8dp"
                android:layout_marginRight="8dp"
                android:layout_marginStart="8dp"
                android:text="@string/view_listing_reviews"
                android:theme="@style/AppTheme.Button"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintHorizontal_bias="0.0"
                app:layout_constraintTop_toBottomOf="@+id/reviews"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintRight_toRightOf="parent"
                app:layout_constraintVertical_bias="0.0" />

            <Button
                android:id="@+id/view_my_reviews"
                android:layout_width="wrap_content"
                android:layout_height="48dp"
                android:layout_marginBottom="8dp"
                android:layout_marginEnd="7dp"
                android:layout_marginLeft="8dp"
                android:layout_marginRight="7dp"
                android:layout_marginStart="8dp"
                android:text="@string/view_my_reviews"
                android:theme="@style/AppTheme.Button"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintHorizontal_bias="0.0"
                app:layout_constraintTop_toBottomOf="@+id/reviews"
                app:layout_constraintLeft_toRightOf="@+id/view_listing_reviews"
                app:layout_constraintRight_toRightOf="parent"
                app:layout_constraintVertical_bias="0.0" />

        </android.support.constraint.ConstraintLayout>

        <Button
            android:id="@+id/sign_out"
            style="@style/Widget.AppCompat.Button.Borderless"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_marginBottom="8dp"
            android:layout_marginEnd="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="32dp"
            android:text="@string/sign_out"
            android:textColor="@color/colorAccent"/>
    </LinearLayout>

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

</LinearLayout>`

有谁知道为什么会这样?

0 个答案:

没有答案