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

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

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

  1. final Dialog dialog = new Dialog( context );
  2. dialog.setContentView( R.layout.item_give_review );
  3. dialog.getWindow().setBackgroundDrawable( new ColorDrawable( Color.TRANSPARENT ) );
  4. dialog.setCancelable( true );
  5. dialog.setCanceledOnTouchOutside(true);
  6. dialog.show();

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

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:app="http://schemas.android.com/apk/res-auto"
  4. android:layout_width="match_parent"
  5. android:layout_height="match_parent"
  6. android:layout_margin="40dp"
  7. android:background="@drawable/dialog_rounded"
  8. android:scrollbarAlwaysDrawVerticalTrack="true"
  9. android:scrollbarFadeDuration="0"
  10. android:scrollbarSize="3dip"
  11. android:scrollbarThumbVertical="@color/colorLightPurple"
  12. android:scrollbars="vertical"
  13. android:fillViewport="true">
  14. <androidx.constraintlayout.widget.ConstraintLayout
  15. android:layout_width="match_parent"
  16. android:layout_height="match_parent">
  17. <ImageButton
  18. android:id="@+id/ib_CloseDialog"
  19. android:layout_width="wrap_content"
  20. android:layout_height="wrap_content"
  21. android:layout_marginTop="0dp"
  22. android:layout_marginEnd="0dp"
  23. android:background="@android:color/transparent"
  24. android:src="@drawable/ic_cancel"
  25. app:layout_constraintEnd_toEndOf="parent"
  26. app:layout_constraintTop_toTopOf="parent" />
  27. <TextView
  28. android:id="@+id/tv_RankUp"
  29. android:layout_width="wrap_content"
  30. android:layout_height="wrap_content"
  31. android:layout_marginTop="75dp"
  32. android:fontFamily="@font/assistant_semibold"
  33. android:text="@string/RankUp"
  34. android:textColor="@color/colorLightPurple"
  35. android:textSize="27sp"
  36. app:layout_constraintEnd_toEndOf="parent"
  37. app:layout_constraintStart_toStartOf="parent"
  38. app:layout_constraintTop_toTopOf="parent" />
  39. <ImageView
  40. android:id="@+id/iv_RankUp"
  41. android:layout_width="110dp"
  42. android:layout_height="120dp"
  43. android:layout_marginTop="48dp"
  44. android:adjustViewBounds="false"
  45. android:scaleType="fitXY"
  46. android:src="@drawable/ic_img_rankup"
  47. app:layout_constraintEnd_toEndOf="parent"
  48. app:layout_constraintStart_toStartOf="parent"
  49. app:layout_constraintTop_toBottomOf="@+id/tv_RankUp" />
  50. <TextView
  51. android:id="@+id/tv_RankUp_Thanks1"
  52. android:layout_width="match_parent"
  53. android:layout_height="wrap_content"
  54. android:layout_marginStart="56dp"
  55. android:layout_marginTop="50dp"
  56. android:layout_marginEnd="56dp"
  57. android:fontFamily="@font/assistant"
  58. android:gravity="center"
  59. android:text="@string/Activity_GiveRank"
  60. android:textColor="@color/colorEmptyStar"
  61. android:textSize="15sp"
  62. app:layout_constraintEnd_toEndOf="parent"
  63. app:layout_constraintStart_toStartOf="parent"
  64. app:layout_constraintTop_toBottomOf="@+id/iv_RankUp" />
  65. <RatingBar
  66. android:id="@+id/reviewRatingUser"
  67. style="?android:attr/ratingBarStyle"
  68. android:layout_width="240dp"
  69. android:layout_height="wrap_content"
  70. android:layout_marginTop="8dp"
  71. android:isIndicator="false"
  72. android:numStars="5"
  73. android:secondaryProgressTint="@color/fui_transparent"
  74. android:stepSize="0.5"
  75. android:theme="@style/rb_Stars"
  76. app:layout_constraintEnd_toEndOf="parent"
  77. app:layout_constraintStart_toStartOf="parent"
  78. app:layout_constraintTop_toBottomOf="@+id/tv_RankUp_Thanks1" />
  79. <EditText
  80. android:id="@+id/et_ReviewText"
  81. android:layout_width="240dp"
  82. android:layout_height="wrap_content"
  83. android:layout_marginStart="40dp"
  84. android:layout_marginTop="20dp"
  85. android:layout_marginEnd="40dp"
  86. android:background="@drawable/btn_underline_gray"
  87. android:drawablePadding="10dp"
  88. android:fontFamily="@font/assistant_semibold"
  89. android:gravity="top|center"
  90. android:hint="Leave your feedback here"
  91. android:inputType="textMultiLine"
  92. android:lines="8"
  93. android:maxLines="3"
  94. android:minLines="3"
  95. android:scrollbars="vertical"
  96. android:textColor="@color/colorBlackText"
  97. android:textSize="18sp"
  98. app:layout_constraintEnd_toEndOf="parent"
  99. app:layout_constraintStart_toStartOf="parent"
  100. app:layout_constraintTop_toBottomOf="@+id/reviewRatingUser" />
  101. <Button
  102. android:id="@+id/btn_Done"
  103. android:layout_width="240dp"
  104. android:layout_height="44dp"
  105. android:layout_marginTop="40dp"
  106. android:background="@drawable/btn_rounded_purple"
  107. android:text="@string/ActivityChange_Done"
  108. android:textAllCaps="false"
  109. android:textColor="@color/colorWhite"
  110. android:textSize="15sp"
  111. app:layout_constraintBottom_toBottomOf="parent"
  112. app:layout_constraintEnd_toEndOf="parent"
  113. app:layout_constraintStart_toStartOf="parent"
  114. app:layout_constraintTop_toBottomOf="@+id/et_ReviewText" />
  115. </androidx.constraintlayout.widget.ConstraintLayout>
  116. </androidx.core.widget.NestedScrollView>

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

暂无答案!

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

相关问题