Я схожу с ума, пытаясь реализовать полноэкранную кнопку, похожую на Youtube, у меня дерево виджетов внутри OrientationBuilder
, а лог c должен следовать следующей схеме:
Если ориентация заблокирована пользователем: Полноэкранная кнопка должна изменить ориентацию с портретной на альбомную, если на полном экране кнопка должна измениться на портретную, эта часть не проблема, я просто называю правильный SystemChrome.setPreferredOrientations([DeviceOrientation.landscapeLeft]);
или SystemChrome.setPreferredOrientations([DeviceOrientation.portrait]);
и все работает и ожидается
Если ориентация НЕ заблокирована пользователем: Здесь все становится хитро… Если в портретной и полноэкранной кнопке нажата SystemChrome.setPreferredOrientations([DeviceOrientation.landscapeLeft]);
должна быть вызвана, но, если пользователь поворачивает телефон в альбомную ориентацию, а затем обратно в портретную ориентацию, необходимо восстановить исходный портрет (отметьте на youtube), то же самое должно произойти в полноэкранном режиме, кнопка переключения в портретную ориентацию, затем, если я перевожу телефон обратно в портретную ориентацию и затем вернемся к ландшафту, приложение должно снова вращаться. Единственное, что я выполнил, это установил правильную функциональность на iOS, в компоновщике макетов я изменил предпочтительную ориентацию на «Portrait, landscapeLeft, landscapeRight» непосредственно перед возвратом метода компоновщика OrientationBuilder, но в Android это приводит к тому, что приложение перестраивается с текущей ориентацией, но в iOS оно остается до вращения вперед-назад, любая идея?