在ConstraintLayout

时间:2019-10-30 14:39:11

标签: android android-constraintlayout

我将ConstraintLayout用作父布局和set android:animateLayoutChanges="true"。当更改某些嵌套视图的可见性时,我将其用作其他视图背景的图层(androidx.constraintlayout.helper.widget.Layer)展示出来了。没有android:animateLayoutChanges就可以了。

我还尝试了“组”小部件的requestLaout()方法中的post()(指的是用于显示/隐藏操作的嵌套视图)-> group.post { binding.bg.parent.requestLayout() },它可以工作。但是这样一来,Layer会在短时间后显示,我不希望这种隐藏和显示发生。

这是我的XML文件:

<androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:animateLayoutChanges="true"
        android:background="@color/defaultBackground">

        <androidx.constraintlayout.widget.Guideline
            android:id="@+id/left"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            app:layout_constraintGuide_percent="0.06" />

        <androidx.constraintlayout.widget.Guideline
            android:id="@+id/right"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            app:layout_constraintGuide_percent="0.94" />

        <androidx.constraintlayout.widget.Guideline
            android:id="@+id/top"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            app:layout_constraintGuide_begin="@dimen/action_bar_padding" />

        <androidx.constraintlayout.helper.widget.Layer
            android:id="@+id/bg"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:background="@drawable/bg_container"
            android:paddingLeft="@dimen/margin_high"
            android:paddingTop="@dimen/margin_low"
            android:paddingRight="@dimen/margin_high"
            android:paddingBottom="@dimen/margin_very_high"
            app:constraint_referenced_ids="radioGroup,submit"
            tools:ignore="MissingConstraints" />

        <RadioGroup
            android:id="@+id/radioGroup"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/margin_high"
            app:layout_constraintLeft_toLeftOf="@id/left"
            app:layout_constraintRight_toRightOf="@id/right"
            app:layout_constraintTop_toTopOf="@id/top">

            <androidx.appcompat.widget.AppCompatRadioButton
                android:id="@+id/individual"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="start"
                android:checked="true"
                android:layoutDirection="rtl"
                android:text="@string/radio_individual_text"
                android:textColor="@color/colorGrayDarker"
                android:textSize="@dimen/text_size_mini" />

            <androidx.appcompat.widget.AppCompatRadioButton
                android:id="@+id/legal"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="start"
                android:layoutDirection="rtl"
                android:text="@string/radio_legal_text"
                android:textColor="@color/colorGrayDarker"
                android:textSize="@dimen/text_size_mini" />
        </RadioGroup>

        <epeyk.mobile.baseutil.views.TextViewCustom
            android:id="@+id/text1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/margin_very_high"
            android:text="@string/nation_id_description_text"
            android:textColor="@color/colorGrayDark"
            android:textSize="@dimen/text_size_very_mini"
            app:customFont="@font/iransans_farsi_numbers"
            app:layout_constraintLeft_toLeftOf="@id/left"
            app:layout_constraintRight_toRightOf="@id/right"
            app:layout_constraintTop_toBottomOf="@id/radioGroup" />

        <epeyk.mobile.baseutil.views.EditTextCustom
            android:id="@+id/nationalId"
            style="@style/mEditTextStyle"
            android:layout_width="0dp"
            android:layout_height="@dimen/edit_text_height_medium"
            android:layout_marginTop="@dimen/margin_low"
            android:background="@drawable/bg_input"
            android:hint="@string/national_id_description"
            android:inputType="number"
            app:customFont="@font/iransans_farsi_numbers"
            app:forceGravity="true"
            app:layout_constraintEnd_toEndOf="@id/right"
            app:layout_constraintStart_toEndOf="@id/confirm"
            app:layout_constraintTop_toBottomOf="@id/text1" />

        <epeyk.mobile.baseutil.views.TextViewCustom
            android:id="@+id/confirm"
            android:layout_width="@dimen/button_width_very_small"
            android:layout_height="@dimen/button_height_low"
            android:layout_marginRight="@dimen/margin_high"
            android:background="@drawable/btn_radius_primary"
            android:clickable="true"
            android:focusable="true"
            android:gravity="center"
            android:text="@string/confirm"
            android:textColor="@color/colorWhite"
            android:textSize="@dimen/text_size_small"
            app:forceGravity="true"
            app:layout_constraintBottom_toBottomOf="@id/nationalId"
            app:layout_constraintEnd_toStartOf="@id/nationalId"
            app:layout_constraintStart_toStartOf="@id/left"
            app:layout_constraintTop_toTopOf="@id/nationalId" />

        <epeyk.mobile.baseutil.views.TextViewCustom
            android:id="@+id/text2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/margin_very_high"
            android:text="@string/company_info_text"
            android:textColor="@color/colorGrayDark"
            android:textSize="@dimen/text_size_very_mini"
            app:layout_constraintLeft_toLeftOf="@id/left"
            app:layout_constraintRight_toRightOf="@id/right"
            app:layout_constraintTop_toBottomOf="@id/nationalId" />

        <epeyk.mobile.baseutil.views.EditTextCustom
            android:id="@+id/companyName"
            style="@style/mEditTextStyle"
            android:layout_width="0dp"
            android:layout_height="@dimen/edit_text_height_medium"
            android:layout_marginTop="@dimen/margin_low"
            android:background="@drawable/bg_input"
            android:enabled="false"
            android:hint="@string/company_name"
            app:forceGravity="true"
            app:layout_constraintLeft_toLeftOf="@id/left"
            app:layout_constraintRight_toRightOf="@id/right"
            app:layout_constraintTop_toBottomOf="@id/text2" />

        <epeyk.mobile.baseutil.views.TextViewCustom
            android:id="@+id/submit"
            android:layout_width="@dimen/button_width_small"
            android:layout_height="@dimen/button_height_low"
            android:layout_marginTop="@dimen/margin_very_high"
            android:layout_marginBottom="@dimen/margin_high"
            android:background="@drawable/btn_radius_primary"
            android:clickable="true"
            android:focusable="true"
            android:gravity="center"
            android:text="@string/confirm_and_continue"
            android:textColor="@color/colorWhite"
            android:textSize="@dimen/text_size_small"
            app:forceGravity="true"
            app:layout_constraintLeft_toLeftOf="@id/left"
            app:layout_constraintRight_toRightOf="@id/right"
            app:layout_constraintTop_toBottomOf="@id/companyName" />

        <androidx.constraintlayout.widget.Group
            android:id="@+id/group"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:visibility="gone"
            app:constraint_referenced_ids="text1,nationalId,confirm,text2,companyName"
            tools:visibility="gone" />
    </androidx.constraintlayout.widget.ConstraintLayout>

0 个答案:

没有答案