Что у меня:
- Активность с
android:configChanges="orientation|screenSize|keyboardHidden"
- Диалоговый фрагмент на нем
- ViewA на DialogFragment
В чем проблема:
Я использую ViewA.getLocationOnScreen
, чтобы получить местоположение на экране представления. при первом открытии диалога позиция правильная. После поворота экрана из-за android:configChanges
вид каким-то образом не обновляет его позицию, и даже если диалог правильно центрирован в действии, getLocationOnScreen ViewA указывает на более раннее местоположение перед вращением.
Что я пробовал.
Я перепробовал onConfigurationChanged
диалогового окна и пробовал это:
-
ViewA.requestLayout
(ничего не делает) -
ViewA.getViewTreeObserver().addOnGlobalLayoutListener
и в onGlobalLayout установите topMargin в 1 и снова вызовите requestLayout. (это сработало, но я не хочу устанавливать маржу при каждом повороте экрана)
Что я хочу знать, так это то, как я могу принудительно изменить положение диалогового окна, чтобы getLocationOnScreen возвращал правильные значения после поворота
Обратите внимание, что я не хочу изменять android:configChanges