EditText小部件滞后警报对话框弹出速度

问题描述 投票:1回答:1

在编译时创建一个空警报对话框并在运行时将其激活时,该对话框弹出时不会有任何滞后,但是一旦我向XML资源布局文件中添加了EditText小部件(纯文本或多行文本),警报对话框,它使对话框弹出速度落后2到3秒。

我尝试了各种更改来解决此问题,但没有运气。例如,我使用了所有不同的布局容器(包括controintlayout),并更改了EditTexts的各种属性,但是没有运气。无论我是在对话框片段中还是在常规片段中创建对话框,此问题仍然存在。我正在使用带有导航图和Kotlin的android jetpack框架。我该怎么做才能解决此问题?谢谢。

布局文件(fragment_new_category_dialog.xml)]]

    <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/dialog_new_category_constraint_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".ui.main.NewCategoryDialogFragment">

      <EditText
        android:id="@+id/editText"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textPersonName"
        android:text="Name"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    </androidx.constraintlayout.widget.ConstraintLayout>

片段代码

import android.app.Dialog
import android.content.DialogInterface
import android.os.Bundle
import android.text.Editable
import android.text.TextWatcher
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ArrayAdapter
import android.widget.EditText
import android.widget.Spinner
import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.DialogFragment

import com.example.pomoplay.R
import kotlinx.android.synthetic.main.main_activity.*

class NewCategoryDialogFragment : DialogFragment() {

    override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
        super.onCreateDialog(savedInstanceState)

        val view =
            requireActivity().layoutInflater.inflate(R.layout.fragment_new_category_dialog, null)

        return activity?.let { it ->

            // Use the Builder class for convenient dialog construction
            val builder = AlertDialog.Builder(it)
            builder.setTitle("Testing")
                .setPositiveButton(
                    "ok"
                ) { _, id ->

                }
                .setNegativeButton("cancel") { _, id ->

                }
                .setView(view)

            builder.create()

        } ?: throw IllegalStateException("Activity cannot be null")
    }

}

[在编译时创建一个空警报对话框并在运行时将其激活时,当该对话框弹出时不会有任何滞后,但是只要我向其中添加一个EditText小部件(纯文本或多行文本),就不会出现延迟。

android kotlin android-alertdialog lag
1个回答
0
投票

我找到了自己的问题的解决方案。似乎如果我在Android Studio中构建该应用程序的签名发行版APK,然后将其安装在手机或仿真器上,则对话框弹出的速度会消失。因此,延迟与在手机上运行应用程序的调试版本有关。因此,当用户从Google Play安装我的应用时,它应该不会落后。

© www.soinside.com 2019 - 2024. All rights reserved.