Я работаю с Flutter и использую Плагин Native Device Orientation
Я пытаюсь узнать ориентацию устройства и управлять своим видом на основе этого.
Этот плагин работает очень хорошо, но я обнаружил проблему, когда нахожусь на странице A
с NativeDeviceOrientationReader
и go на странице B
, на которой есть еще NativeDeviceOrientationReader
.
В этом случае страница, которая должна иметь NativeDeviceOrientation.landscapeLeft
, будет иметь NativeDeviceOrientation.landscapeRight
, даже если я не изменил ориентацию в середине.
Примечание: если я поверну телефон после смены страницы начинает исправно работать. Также, если я удалю один из NativeDeviceOrientationReader's
, он тоже будет работать нормально.
Я использую этот код:
NativeDeviceOrientationReader(
builder: (context) {
NativeDeviceOrientation orientation = NativeDeviceOrientationReader.orientation(context);
var quarterTurns = 0;
if (orientation == NativeDeviceOrientation.landscapeLeft) {
quarterTurns = 3;
} else if (orientation == NativeDeviceOrientation.landscapeRight) {
quarterTurns = 1;
}
}
),
(...)
Я не знаю, нужно ли как-то закрыть ридер или что-то в этом роде.
Заранее спасибо!
-------------- РЕДАКТИРОВАТЬ 1 ------ --------
На самом деле я не исправил проблему, но я мог решить свою проблему, изменив один NativeOrientationReader
на трепещущий OrientationBuilder
, потому что я понял, что мне не нужен текущий вращение, я только хотел знать, альбом у телефона или портретный.
Спасибо.