How to use MaterialAlertDialogBuilder fine?

12,069

Solution 1

It is intentional. They are using different styles.

You can change it using something like:

  <style name="Body_ThemeOverlay.MaterialComponents.MaterialAlertDialog" parent="@style/ThemeOverlay.MaterialComponents.MaterialAlertDialog">
    <item name="materialAlertDialogBodyTextStyle">@style/BodyMaterialAlertDialog.MaterialComponents.Body.Text</item>
  </style>
  <style name="BodyMaterialAlertDialog.MaterialComponents.Body.Text" parent="MaterialAlertDialog.MaterialComponents.Body.Text">
    <item name="android:textColor">@color/colorAccent</item>
    <item name="android:textAllCaps">true</item>
    <item name="android:textSize">16sp</item>
    <item name="android:textStyle">bold</item>
  </style>

and then:

 new MaterialAlertDialogBuilder(this,
      R.style.Body_ThemeOverlay_MaterialComponents_MaterialAlertDialog)
            .setTitle("Title")
            .setMessage("Message......")
            ...
            .show();

enter image description hereenter image description here

Solution 2

You can solve like this:

<item name="materialAlertDialogTheme">@style/ThemeOverlay.MyApp.Dialog</item>

<style name="ThemeOverlay.MyApp.Dialog" parent="@style/ThemeOverlay.MaterialComponents.Dialog">
    <item name="android:dialogCornerRadius" tools:targetApi="p">@dimen/dp_4</item>
    <item name="android:paddingBottom">@dimen/dp_2</item>
    ...
</style>

Solution 3

You need to use MaterialAlertDialogBuilder instead of AlertDialog.Builder.

MaterialAlertDialogBuilder(this)
            .setMessage("This is a test of AlertDialog.Builder")
            .setPositiveButton("Ok", null)
            .show()
Share:
12,069

Related videos on Youtube

Rulogarcillan
Author by

Rulogarcillan

Updated on June 04, 2022

Comments

  • Rulogarcillan
    Rulogarcillan almost 2 years

    When i use dialog.builder the font size is correct but when i use MaterialAlertDialogBuilder the font size of body text is smaller. its ok?

    implementation 'com.google.android.material:material:1.1.0-alpha06'
    

    Im use this theme

    <style name="AppTheme" parent="Theme.MaterialComponents.Light">
    

    MaterialComponent code

    MaterialAlertDialogBuilder(this)
        .setMessage("This is a test of MaterialAlertDialogBuilder")
        .setPositiveButton("Ok", null)
        .show()
    

    Screenshot_20190512-115103_2

    AlertDialog.Builder

    AlertDialog.Builder(this)
                .setMessage("This is a test of AlertDialog.Builder")
                .setPositiveButton("Ok", null)
                .show()
    

    Screenshot_20190512-115241_2

    Where is the problem?

  • Vikas Patidar
    Vikas Patidar over 3 years
    OP is already using the MaterialAlertDialogBuilder
  • chrisonline
    chrisonline over 3 years
    @VikasPatidar OP?