约束布局中0dp的对话框布局高度不起作用

问题描述 投票:1回答:1

当前正在使用约束布局创建对话框并放置类似这样的视图,但视图高度为0dp无效。

在这里看不到recyclerview。

<?xml version="1.0" encoding="utf-8"?>
<layout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:bind="http://schemas.android.com/tools">
    <data>
        <variable
            name="passengerSeatViewModel"
            type="PassengerSeatViewModel" />
        <variable
            name="seatSelectionViewModel"
            type="SeatSelectionViewModel" />
    </data>
    <android.support.constraint.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/colorWhite">
        <android.support.constraint.Guideline
            android:id="@+id/guideline_left"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            app:layout_constraintGuide_begin="@dimen/_20dp" />
        <android.support.constraint.Guideline
            android:id="@+id/guideline_right"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            app:layout_constraintGuide_end="@dimen/_20dp" />
        <include
            android:id="@+id/header"
            layout="@layout/dialog_header"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            app:layout_constraintLeft_toRightOf="@+id/guideline_left"
            app:layout_constraintRight_toLeftOf="@+id/guideline_right"
            bind:header="@{@string/text_seat_selected_for}"
            bind:onCancelClick="@{passengerSeatViewModel}" />
        <android.support.v7.widget.AppCompatTextView
            android:id="@+id/tv_segment"
            style="@style/TextStyle_L_Black"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="@dimen/_5dp"
            android:layout_marginLeft="@dimen/_5dp"
            android:drawableEnd="@drawable/green_filled_tick"
            android:drawableRight="@drawable/green_filled_tick"
            android:drawablePadding="@dimen/_5dp"
            android:gravity="center"
            android:text="@{seatSelectionViewModel.getSelectedSegment()}"
            app:layout_constraintLeft_toRightOf="@+id/guideline_left"
            app:layout_constraintTop_toBottomOf="@+id/header" />
        <android.support.v7.widget.RecyclerView
            android:id="@+id/rv_passengers"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_marginTop="@dimen/_3dp"
            app:layout_constraintBottom_toTopOf="@+id/barrier_select_seats"
            app:layout_constraintLeft_toLeftOf="@+id/guideline_left"
            app:layout_constraintRight_toRightOf="@+id/guideline_right"
            app:layout_constraintTop_toBottomOf="@+id/tv_segment"
            bind:data="@{seatSelectionViewModel.passengerAdapterViewModel}"
            bind:passengerViewModel="@{passengerSeatViewModel}" />
        <android.support.constraint.Group
            android:id="@+id/group_copy"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:visibility="gone"
            app:constraint_referenced_ids="btn_copy_seat,tv_or,seperator_left,seperator_right" />
        <android.support.v7.widget.AppCompatButton
            android:id="@+id/btn_copy_seat"
            style="@style/AppBtnStyle_Disable"
            android:layout_width="0dp"
            android:text="@string/text_copy_same_seat"
            app:layout_constraintLeft_toLeftOf="@+id/guideline_left"
            app:layout_constraintRight_toRightOf="@+id/guideline_right"
            app:layout_constraintTop_toBottomOf="@+id/rv_passengers" />
        <android.support.v7.widget.AppCompatTextView
            android:id="@+id/tv_or"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/_20dp"
            android:paddingLeft="@dimen/_23dp"
            android:paddingRight="@dimen/_23dp"
            android:text="@string/or"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/btn_copy_seat" />
        <View
            android:id="@+id/seperator_left"
            android:layout_width="0dp"
            android:layout_height="@dimen/_1dp"
            android:background="@color/colorDividerSearch"
            app:layout_constraintBottom_toBottomOf="@+id/tv_or"
            app:layout_constraintLeft_toRightOf="@+id/guideline_left"
            app:layout_constraintRight_toLeftOf="@+id/tv_or"
            app:layout_constraintTop_toTopOf="@+id/tv_or" />
        <View
            android:id="@+id/seperator_right"
            android:layout_width="0dp"
            android:layout_height="@dimen/_1dp"
            android:background="@color/colorDividerSearch"
            app:layout_constraintBottom_toBottomOf="@+id/tv_or"
            app:layout_constraintLeft_toRightOf="@+id/tv_or"
            app:layout_constraintRight_toLeftOf="@+id/guideline_right"
            app:layout_constraintTop_toTopOf="@+id/tv_or" />
        <android.support.constraint.Barrier
            android:id="@+id/barrier_seats"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:barrierDirection="bottom"
            app:constraint_referenced_ids="tv_or,rv_passengers" />
        <android.support.constraint.Barrier
            android:id="@+id/barrier_select_seats"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:barrierDirection="top"
            app:constraint_referenced_ids="tv_or,btn_select_seat" />
        <android.support.v7.widget.AppCompatButton
            android:id="@+id/btn_select_seat"
            style="@style/AppBtnStyleBlueBorderless"
            android:layout_width="0dp"
            android:layout_marginTop="@dimen/_16dp"
            android:text="@string/text_select_seat_for"
            app:layout_constraintBottom_toTopOf="@+id/footer_space"
            app:layout_constraintLeft_toLeftOf="@+id/guideline_left"
            app:layout_constraintRight_toRightOf="@+id/guideline_right" />
        <Space
            android:id="@+id/footer_space"
            android:layout_width="0dp"
            android:layout_height="@dimen/_22dp"
            app:layout_constraintBottom_toBottomOf="parent" />
    </android.support.constraint.ConstraintLayout>
</layout>

NOTE:

  • 1)需要在页脚及其上方的其他内容处固定按钮。以上部分将具有换行内容的高度。

    2)内容未在底页内滚动

android android-constraintlayout bottom-sheet
1个回答
0
投票

在recyclerView中使用app:layout_constraintHeight_default="wrap"

© www.soinside.com 2019 - 2024. All rights reserved.