Решение довольно сложное. Вы должны создать свой собственный виджет, полученный из стандартного виджета (виджет, который должен использоваться в макете вашего диалога). Этот виджет используется вместо стандартного виджета в макете, используемом в настройках диалогов.
Затем вы добавляете интерфейс обработчика обратного вызова и обработчик обратного вызова в этот новый виджет. После этого вы можете переопределить onDraw () и вызвать ваш обработчик обратного вызова перед вызовом super.onDraw ().
Теперь, когда вы реализуете прослушиватель обратного вызова в своем классе предпочтений диалога и назначаете его этому виджету, вы получаете обратный вызов onDraw (). Когда вызывается этот обратный вызов, все значения ширины и высоты были установлены, и вы можете работать с ними.
Я знаю, что это грязный хак, но я не нашел ничего лучше.