AnimatedVisibility在与对话框一起使用时可能会出现问题,因为对话框也会将视图设置为不可见状态。为了解决这个问题,我们需要手动将对话框的可见性设置为true。这是通过设置对话框的setOnShowListener来实现的,如下所示:
val dialog = AlertDialog.Builder(context) .setTitle("Title") .setMessage("Message") .setPositiveButton(android.R.string.ok) { dialog, _ -> dialog.dismiss() } .create()
dialog.setOnShowListener { (dialog as? AlertDialog)?.getButton(DialogInterface.BUTTON_POSITIVE)?.isEnabled = false }
AnimatedVisibility(visible = isVisible) { dialog.show() }
在此示例中,我们创建一个AlertDialog并设置setOnShowListener,以在对话框显示时将按钮禁用。然后,在AnimatedVisibility中,我们显示对话框。这保证了对话框在显示时处于可见状态,并使AnimatedVisibility正常工作。