Browse Source

Fixed show dialog cause crash

Wayne 6 years ago
parent
commit
e2edf45112

+ 7 - 1
src/main/java/com/kdanmobile/kdanloginregisterui/LoginBView.kt

@@ -5,6 +5,7 @@ import android.support.v7.app.AlertDialog
 import android.util.AttributeSet
 import android.view.LayoutInflater
 import android.view.View
+import android.view.ViewGroup
 import com.kdanmobile.kdanloginregisterui.widget.EmailLoginFormView
 import kotlinx.android.synthetic.main.activity_login_b.view.*
 
@@ -38,7 +39,12 @@ class LoginBView @JvmOverloads constructor(
 
     private fun setupEmailLoginBtn() {
         view_loginB_emailLogin.setOnClickListener {
-            val dialog = AlertDialog.Builder(context).setView(view).show()
+            val dialog = AlertDialog.Builder(context)
+                    .setView(view)
+                    .setOnDismissListener {
+                        (view.parent as ViewGroup).removeAllViews()
+                    }
+                    .show()
             formView.let {
                 it.isRemember = isRemember
                 it.email = email

+ 7 - 1
src/main/java/com/kdanmobile/kdanloginregisterui/RegisterBView.kt

@@ -5,6 +5,7 @@ import android.support.v7.app.AlertDialog
 import android.util.AttributeSet
 import android.view.LayoutInflater
 import android.view.View
+import android.view.ViewGroup
 import com.kdanmobile.kdanloginregisterui.widget.EmailRegisterFormView
 import kotlinx.android.synthetic.main.activity_register_b.view.*
 
@@ -35,7 +36,12 @@ class RegisterBView @JvmOverloads constructor(
 
     private fun setupEmailRegisterBtn() {
         view_registerB_emailRegister.setOnClickListener {
-            val dialog = AlertDialog.Builder(context).setView(view).show()
+            val dialog = AlertDialog.Builder(context)
+                    .setView(view)
+                    .setOnDismissListener {
+                        (view.parent as ViewGroup).removeAllViews()
+                    }
+                    .show()
             formView.let {
                 it.onSubmit = Runnable {
                     onClickEmailRegister.run()