首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MaterialAlertDialogBuilder中的视图周围添加边距?

如何在MaterialAlertDialogBuilder中的视图周围添加边距?
EN

Stack Overflow用户
提问于 2019-11-15 18:03:27
回答 1查看 351关注 0票数 0

当用户单击特定项目(从列表中)时,我需要用户提供更多信息。我正在显示一个对话框,以获得更多的信息,我正在使用MaterialAlertDialogBuilder。我就是这样建造它的:

代码语言:javascript
复制
val v = LayoutInflater.from(context).inflate(R.layout.view_text_input, null)
MaterialAlertDialogBuilder(context, R.style.AlertDialogMaterialTheme)
                .setTitle(R.string.ofi_pleaseDescribe)
                .setView(v)
                .setPositiveButton(R.string.ok) { d, i ->
                    if (d == null) return@setPositiveButton
                    val txt = etInput.text?.trim()
                    etRationale.setText(txt)
                }
                .show()

这是它的布局(view_text_input.xml)。

代码语言:javascript
复制
<com.google.android.material.textfield.TextInputLayout xmlns:android="http://schemas.android.com/apk/res/android"
    style="@style/ofi_textInputLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginStart="16dp"
    android:layout_marginTop="24dp"
    android:layout_marginEnd="16dp"
    android:layout_marginBottom="8dp">

    <com.google.android.material.textfield.TextInputEditText
        android:id="@+id/etInput"
        style="@style/ofi_editText"
        android:hint="@string/ofi_title_hint" />

</com.google.android.material.textfield.TextInputLayout>

正如您在下面的屏幕截图中所看到的,由于某种原因,上面的边距被忽略了。有谁知道为什么以及如何在视图周围增加页边距?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-15 18:09:15

在你的观点中使用不同的东西。

类似于:

代码语言:javascript
复制
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingTop="?attr/dialogPreferredPadding"
    android:paddingStart="?attr/dialogPreferredPadding"
    android:paddingEnd="?attr/dialogPreferredPadding">

  <com.google.android.material.textfield.TextInputLayout
      android:id="@+id/text_input_layout"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      ...>

    <com.google.android.material.textfield.TextInputEditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        .../>
  </com.google.android.material.textfield.TextInputLayout>

</FrameLayout>

然后:

代码语言:javascript
复制
new MaterialAlertDialogBuilder(AlertDialogActivity.this)
            .setTitle(R.string.ofi_pleaseDescribe)
            .setView(R.layout.view_text_input)
            ...
            .show();

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58882442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档