在有边距的外部单击时,对话框不会关闭

jtoj6r0c  于 2021-06-30  发布在  Java
关注(0)|答案(0)|浏览(204)

我创建了一个对话框,如下所示:

final Dialog dialog = new Dialog( context );
dialog.setContentView( R.layout.item_give_review );
dialog.getWindow().setBackgroundDrawable( new ColorDrawable( Color.TRANSPARENT ) );
dialog.setCancelable( true );
dialog.setCanceledOnTouchOutside(true);
dialog.show();

哪里 item_give_review 是一个 NestedScrollView 包含的对象很少:

<?xml version="1.0" encoding="utf-8"?>
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="40dp"
    android:background="@drawable/dialog_rounded"
    android:scrollbarAlwaysDrawVerticalTrack="true"
    android:scrollbarFadeDuration="0"
    android:scrollbarSize="3dip"
    android:scrollbarThumbVertical="@color/colorLightPurple"
    android:scrollbars="vertical"
    android:fillViewport="true">

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <ImageButton
            android:id="@+id/ib_CloseDialog"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="0dp"
            android:layout_marginEnd="0dp"
            android:background="@android:color/transparent"
            android:src="@drawable/ic_cancel"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

        <TextView
            android:id="@+id/tv_RankUp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="75dp"
            android:fontFamily="@font/assistant_semibold"
            android:text="@string/RankUp"
            android:textColor="@color/colorLightPurple"
            android:textSize="27sp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

        <ImageView
            android:id="@+id/iv_RankUp"
            android:layout_width="110dp"
            android:layout_height="120dp"
            android:layout_marginTop="48dp"
            android:adjustViewBounds="false"
            android:scaleType="fitXY"
            android:src="@drawable/ic_img_rankup"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/tv_RankUp" />

        <TextView
            android:id="@+id/tv_RankUp_Thanks1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginStart="56dp"
            android:layout_marginTop="50dp"
            android:layout_marginEnd="56dp"
            android:fontFamily="@font/assistant"
            android:gravity="center"
            android:text="@string/Activity_GiveRank"
            android:textColor="@color/colorEmptyStar"
            android:textSize="15sp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/iv_RankUp" />

        <RatingBar
            android:id="@+id/reviewRatingUser"
            style="?android:attr/ratingBarStyle"
            android:layout_width="240dp"
            android:layout_height="wrap_content"
            android:layout_marginTop="8dp"
            android:isIndicator="false"
            android:numStars="5"
            android:secondaryProgressTint="@color/fui_transparent"
            android:stepSize="0.5"
            android:theme="@style/rb_Stars"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/tv_RankUp_Thanks1" />

        <EditText
            android:id="@+id/et_ReviewText"
            android:layout_width="240dp"
            android:layout_height="wrap_content"
            android:layout_marginStart="40dp"
            android:layout_marginTop="20dp"
            android:layout_marginEnd="40dp"
            android:background="@drawable/btn_underline_gray"
            android:drawablePadding="10dp"
            android:fontFamily="@font/assistant_semibold"
            android:gravity="top|center"
            android:hint="Leave your feedback here"
            android:inputType="textMultiLine"
            android:lines="8"
            android:maxLines="3"
            android:minLines="3"
            android:scrollbars="vertical"
            android:textColor="@color/colorBlackText"
            android:textSize="18sp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/reviewRatingUser" />

        <Button
            android:id="@+id/btn_Done"
            android:layout_width="240dp"
            android:layout_height="44dp"
            android:layout_marginTop="40dp"
            android:background="@drawable/btn_rounded_purple"
            android:text="@string/ActivityChange_Done"
            android:textAllCaps="false"
            android:textColor="@color/colorWhite"
            android:textSize="15sp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/et_ReviewText" />

    </androidx.constraintlayout.widget.ConstraintLayout>

</androidx.core.widget.NestedScrollView>

现在,当用户在对话框外单击时,我希望对话框关闭,但是我注意到它不能与margin一起工作。
为了让它工作,我不得不删除的边缘和设置的尺寸 nestedScrollView .
有没有什么办法,我将能够使用保证金和解散时,点击外面?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题