将加载动画添加到 kotlin 中的自定义对话框

Add load animation to custom dialog in kotlin

我想将加载动画添加到自定义对话框,我可以在 java 中完成,但我在 kotlin 中执行相同操作时遇到问题,它给我以下错误

E/AndroidRuntime: FATAL EXCEPTION: main
android.util.AndroidRuntimeException: requestFeature() must be called before adding content
at com.android.internal.policy.impl.PhoneWindow.requestFeature(PhoneWindow.java:229)
at com.android.internal.app.AlertController.installContent(AlertController.java:234)
at android.app.AlertDialog.onCreate(AlertDialog.java:337)
at android.app.Dialog.dispatchOnCreate(Dialog.java:355)
at android.app.Dialog.show(Dialog.java:260)
at com.autodroid.demo.MainActivity.show(MainActivity.kt:66)
at com.autodroid.demo.MainActivity$onCreate.onClick(MainActivity.kt:32)
at android.view.View.performClick(View.java:4204)
at android.view.View$PerformClick.run(View.java:17355)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)

下面是我在 kotlin 中创建对话框的代码

 val dialogBuilder = AlertDialog.Builder(activity)
        val inflater = activity?.layoutInflater
        val dialogView = inflater?.inflate(R.layout.newly_dialog, null)
        dialogBuilder.setView(dialogView)

        val tvPopText = dialogView?.findViewById<View>(R.id.tvPopText) as TextView

        val dBuilder = dialogBuilder.create()

        //-----> Issue  :( 
        var viewGroup = dBuilder.window.decorView
        viewGroup.startAnimation(AnimationUtils.loadAnimation(activity, R.anim.slide_down))
      //-----> Issue

        dBuilder.show()

任何指针将不胜感激,提前致谢:)

style.xml

<style name="yourCustomDialog" parent="@android:style/Theme.Dialog">
         <item name="android:windowAnimationStyle">@style/yourCustomDialogAnimation</item>
     </style>

     <style name="yourCustomDialogAnimation">
        <item name="android:windowEnterAnimation">@anim/slide_down</item>
        <item name="android:windowExitAnimation">@anim/slide_up</item>
     </style>

 </resources>

如何在kotlin代码中使用

val dialogBuilder = AlertDialog.Builder(activity,R.style.yourCustomDialog)