Создание пустого диалогового окна с предупреждением во время компиляции и его активация во время выполнения не приводит к задержке при всплывающем окне, но как только я добавляю виджет EditText (обычный текст или многострочный текст) в ресурс xml файл макета для диалогового окна с предупреждением, он отстает от скорости всплывающего окна на 2–3 секунды.
Я попытался внести всевозможные изменения, чтобы исправить это, но безуспешно. Например, я использовал все различные контейнеры компоновки, включая contraintlayout, и изменил различные атрибуты EditTexts, но безуспешно. Эта проблема сохраняется независимо от того, создаю ли я диалог внутри фрагмента диалога или в обычном фрагменте. Я использую фреймворк android jetpack с графиком навигации и kotlin. Что я могу сделать, чтобы решить эту проблему? Спасибо.
Файл макета (фрагмент_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")
}
}