如何将添加到AlertDialog的自定义布局中的TextView文本外观与Dialog的匹配?

时间:2017-05-20 05:20:37

标签: android android-alertdialog android-styles android-dialog

我有这个自定义布局,因为我想要一个带有TextView 的ListView 它,我想处理点击列表项,所以对话框不会关闭。 (AlertDialog将在其ListView上方显示自己的消息视图。)

<LinearLayout 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:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:paddingStart="14dp"
              android:paddingEnd="10dp"
   >
   <ListView
      android:id="@+id/optionList"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:overScrollMode="never"
      android:choiceMode="singleChoice"
      android:divider="@null"
      />
   <TextView
      android:id="@+id/messageView"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:gravity="center_vertical"
      android:padding="5dp"
      />
</LinearLayout>

我做了一个虚假的设置,我将文本放在对话框的TextView和我的布局中。结果截图。

Heading

我甚至尝试在我的布局中将style="?android:attr/textAppearanceMedium"放在@id / messageView中,因为alert_dialog.xml拥有它。它使文本大于对话框的消息。并且颜色不匹配,太亮(就好像它是活动的默认颜色)。

我甚至尝试使用构建器的LayoutInflater,这是文档说的。

                val infl = builder.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
                val view = infl.inflate(R.layout.dialog_report_profile, null)
                builder.setView(view)

2 个答案:

答案 0 :(得分:0)

您始终可以将style="?android:attr/textAppearanceMedium" AND android:color="#000"放在TextView

或者,您可以将其添加到res / styles.xml:

<style name="DialogMessageText" parent="@android:style/TextAppearance.Medium">
    <item name="android:textColor">@android:color/black</item>
</style>

并将此行放入TextView:style="@style/DialogMessageText"

答案 1 :(得分:0)

试试这些链接:link 1&amp; link 2

这些可能会有所帮助