Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between windowMinWidthMajor and android:windowMinWidthMajor

Tags:

android

I want to set up a proper style for my ProgressDialog. I like the default one but I want to customize it. I've tried to use AppCompat dialogs but they all setup some weird width and height for my Dialog.

I found that extending from MaterialDialog do the trick, so this code works:

<style name="ProgressDialogTheme" parent="MaterialBaseTheme.AlertDialog" >
</style>

This is because MeterialDialog itself setup custom width

<style name="MaterialBaseTheme.AlertDialog" parent="MaterialBaseTheme.Dialog">
        <item name="android:windowMinWidthMajor">@android:dimen/dialog_min_width_major</item>
        <item name="android:windowMinWidthMinor">@android:dimen/dialog_min_width_minor</item>
    </style>

And I found that there is AppCompat dialog that set up the same custom width, here it is:

<style name="Base.Theme.AppCompat.Light.Dialog.Alert">
        <item name="windowMinWidthMajor">@dimen/abc_dialog_min_width_major</item>
        <item name="windowMinWidthMinor">@dimen/abc_dialog_min_width_minor</item>
    </style>

but it do not work

The only difference is a andorid namespace at the beginning of MeterialDialog attribute.

Can someone explain why android:windowMinWidthMajor do the trick?

like image 437
nutella_eater Avatar asked Oct 28 '16 10:10

nutella_eater


2 Answers

@Ian Wong's answer is correct. Below are further details on that:

android:windowMinWidthMajor -> min_dialog_width in Landscape

android:windowMinWidthMinor -> min_dialog_width in Portrait

  • The height of the dialog however isn't set and just wraps the content.

The actual values for @dimen/abc_dialog_min_width_major & @dimen/abc_dialog_min_width_minor is defined in the following path:

location of actual values defined for the dimensions

@dimen/abc_dialog_min_width_major - is 65% to 45% depending on the screen size. @dimen/abc_dialog_min_width_minor - is 95% to 72% depending on the screen size.

like image 137
theThapa Avatar answered Nov 09 '22 11:11

theThapa


According to this link:

Min_witdh_major is:

The platform's desired minimum size for a dialog's width when it is along the major axis (that is the screen is landscape). This may be either a fraction or a dimension.

And min_with_minor is:

The platform's desired minimum size for a dialog's width when it is along the minor axis (that is the screen is portrait). This may be either a fraction or a dimension.

In appcompat, this value is set as 65%.

like image 19
Ian Wong Avatar answered Nov 09 '22 12:11

Ian Wong