【发布时间】:2022-01-08 13:54:24
【问题描述】:
所以每当我单击一个按钮以显示我的对话框时,它都会显示这样的对话框,它太窄了。Sorry new account image of un-intended results here.请帮我解决这个问题,我希望它在设计器中显示@987654322 @(再次抱歉外部链接)。
这是对话框片段的xml代码:
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<TextView
android:layout_width="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginTop="20dp"
tools:text="Enter new member details"
android:textSize="20sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:id="@+id/instructions_text"
android:layout_height="wrap_content"/>
<com.google.android.material.textfield.TextInputLayout
android:layout_width="0dp"
android:id="@+id/name_layout"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginTop="20dp"
android:hint="@string/name"
app:layout_constraintTop_toBottomOf="@+id/instructions_text"
app:layout_constraintEnd_toEndOf="parent"
android:layout_height="wrap_content">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:id="@+id/name"
android:layout_height="wrap_content"/>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_width="0dp"
android:id="@+id/surname_layout"
app:layout_constraintStart_toStartOf="parent"
android:hint="@string/surname"
android:layout_marginTop="20dp"
app:layout_constraintTop_toBottomOf="@+id/name_layout"
app:layout_constraintEnd_toEndOf="parent"
android:layout_height="wrap_content">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:id="@+id/surname"
android:layout_height="wrap_content"/>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_width="0dp"
android:id="@+id/dob_layout"
app:layout_constraintStart_toStartOf="parent"
android:hint="@string/birth_date"
android:layout_marginTop="20dp"
app:layout_constraintTop_toBottomOf="@+id/surname_layout"
app:layout_constraintEnd_toEndOf="parent"
android:layout_height="wrap_content">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:id="@+id/date_of_birth"
android:layout_height="wrap_content"/>
</com.google.android.material.textfield.TextInputLayout>
<Button
android:layout_width="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
android:id="@+id/add_button"
android:layout_marginTop="10dp"
android:text="@string/add"
app:layout_constraintTop_toBottomOf="@id/dob_layout"
android:layout_height="wrap_content"/>
<Button
android:layout_width="wrap_content"
app:layout_constraintStart_toStartOf="parent"
android:id="@+id/cancel_button"
android:layout_marginTop="10dp"
android:text="@string/cancel"
app:layout_constraintTop_toBottomOf="@id/dob_layout"
android:layout_height="wrap_content"/>
我从 8 年前发现了一个有点相似的post,“解决方案是设置 min-width 和 min-height ,但我不想为此类问题硬编码值,我确实尝试过,但它在我测试的另一台设备上看起来很奇怪。没有更官方或更好的解决方案吗?感谢您的任何输入。哦,这也是我的对话框充气机代码:
class NewMemberDialogue: DialogFragment() {
private lateinit var binding: DialogLayoutBinding
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = DialogLayoutBinding.inflate(layoutInflater,container,false)
binding.cancelButton.setOnClickListener { dismiss() }
return binding.root
}
}
【问题讨论】: