Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何降低MaterialAlertDialog的消息高度_Android_Material Design_Android Styles - Fatal编程技术网

Android 如何降低MaterialAlertDialog的消息高度

Android 如何降低MaterialAlertDialog的消息高度,android,material-design,android-styles,Android,Material Design,Android Styles,我正在尝试使用MaterialAlertDialogBuilder创建MaterialAlertDailog。 我设法控制styles.xml中对话框的大多数属性,但消息和OK按钮之间的空间除外 我当前正在使用此依赖项: implementation "com.google.android.material:material:1.1.0" styles.xml <resources> <!-- Base application theme. -->

我正在尝试使用MaterialAlertDialogBuilder创建MaterialAlertDailog。 我设法控制styles.xml中对话框的大多数属性,但消息和OK按钮之间的空间除外

我当前正在使用此依赖项:

implementation "com.google.android.material:material:1.1.0"
styles.xml

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="@style/Theme.MaterialComponents.Light">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>


    <style name="MaterialDialogDark" parent="@style/ThemeOverlay.MaterialComponents.MaterialAlertDialog">
        <!-- Customize your theme here. -->
        <item name="colorSurface">@color/material_dialog_background_color_dark</item>
        <item name="buttonBarPositiveButtonStyle">@style/MaterialAlert.Button.Dark</item>
        <item name="buttonBarNegativeButtonStyle">@style/MaterialAlert.Button.Dark</item>
        <item name="materialAlertDialogBodyTextStyle">@style/MaterialAlert.Body.Dark</item>
        <item name="materialAlertDialogTitleTextStyle">@style/MaterialAlert.Title.Dark</item>
        <item name="materialAlertDialogTitlePanelStyle">@style/MaterialAlert.Panel</item>
    </style>


    <style name="MaterialAlert.Panel" parent="MaterialAlertDialog.MaterialComponents.Title.Panel">

        <item name="android:layout_height">90dp</item>

    </style>

    <style name="MaterialAlert.Button.Dark" parent="Widget.MaterialComponents.Button.TextButton">
        <item name="android:textColor">@color/material_dialog_btn_color</item>
        <item name="android:textSize">16sp</item>
        <item name="android:textAllCaps">false</item>
    </style>

    <style name="MaterialAlert.Body.Dark" parent="MaterialAlertDialog.MaterialComponents.Title.Text">
        <item name="android:textSize">16sp</item>
        <item name="android:textColor">@color/material_dialog_body_color</item>
        <item name="android:singleLine">false</item>
        <item name="android:lines">5</item>
        <item name="android:lineSpacingMultiplier">1.1</item>
        <item name="android:paddingTop">10dp</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:minHeight">20dp</item>
        <item name="android:paddingBottom">0dp</item>
        <item name="android:ellipsize">none</item>
    </style>

    <style name="MaterialAlert.Title.Dark" parent="MaterialAlertDialog.MaterialComponents.Title.Text">
        <item name="android:textSize">20sp</item>
        <item name="android:textStyle">bold</item>
        <item name="android:textColor">@color/material_dialog_title_color_dark</item>
    </style>

</resources>
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/message"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:textSize="18sp"
    android:textColor="@color/material_dialog_body_color"
    android:paddingTop="15dp"
    android:paddingBottom="15dp"
    android:paddingLeft="23dp"
    android:paddingRight="23dp"/>

最后我创建了一个自定义布局(只有一个textview),然后它正常工作了

自定义_text.xml

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="@style/Theme.MaterialComponents.Light">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>


    <style name="MaterialDialogDark" parent="@style/ThemeOverlay.MaterialComponents.MaterialAlertDialog">
        <!-- Customize your theme here. -->
        <item name="colorSurface">@color/material_dialog_background_color_dark</item>
        <item name="buttonBarPositiveButtonStyle">@style/MaterialAlert.Button.Dark</item>
        <item name="buttonBarNegativeButtonStyle">@style/MaterialAlert.Button.Dark</item>
        <item name="materialAlertDialogBodyTextStyle">@style/MaterialAlert.Body.Dark</item>
        <item name="materialAlertDialogTitleTextStyle">@style/MaterialAlert.Title.Dark</item>
        <item name="materialAlertDialogTitlePanelStyle">@style/MaterialAlert.Panel</item>
    </style>


    <style name="MaterialAlert.Panel" parent="MaterialAlertDialog.MaterialComponents.Title.Panel">

        <item name="android:layout_height">90dp</item>

    </style>

    <style name="MaterialAlert.Button.Dark" parent="Widget.MaterialComponents.Button.TextButton">
        <item name="android:textColor">@color/material_dialog_btn_color</item>
        <item name="android:textSize">16sp</item>
        <item name="android:textAllCaps">false</item>
    </style>

    <style name="MaterialAlert.Body.Dark" parent="MaterialAlertDialog.MaterialComponents.Title.Text">
        <item name="android:textSize">16sp</item>
        <item name="android:textColor">@color/material_dialog_body_color</item>
        <item name="android:singleLine">false</item>
        <item name="android:lines">5</item>
        <item name="android:lineSpacingMultiplier">1.1</item>
        <item name="android:paddingTop">10dp</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:minHeight">20dp</item>
        <item name="android:paddingBottom">0dp</item>
        <item name="android:ellipsize">none</item>
    </style>

    <style name="MaterialAlert.Title.Dark" parent="MaterialAlertDialog.MaterialComponents.Title.Text">
        <item name="android:textSize">20sp</item>
        <item name="android:textStyle">bold</item>
        <item name="android:textColor">@color/material_dialog_title_color_dark</item>
    </style>

</resources>
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/message"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:textSize="18sp"
    android:textColor="@color/material_dialog_body_color"
    android:paddingTop="15dp"
    android:paddingBottom="15dp"
    android:paddingLeft="23dp"
    android:paddingRight="23dp"/>

问题可能出在MaterialAlert.Body.Dark:
5
你说得对!但是现在我有一个不同的问题,我有几个消息(几个场景)具有不同的行数。如果删除lines属性,我将只看到第一行。不管我有多少行,它都可能是换行内容吗?看看,我认为
换行内容
应该可以,但我从来没有尝试过。我的样式(MaterialAlert.Body.Dark)中有这一行,但文本视图似乎忽略了它,或者我有一个不同样式属性的问题。或者haps
false
搞乱了它?