Ângulo da dobradiça no Flutter
A dobradiça do Surface Duo e de outros dispositivos dobráveis contém um sensor que nos informa o ângulo entre as duas telas. O valor do ângulo da dobradiça varia de 0 a 360:
- 0 - As telas estão voltadas umas para as outras e não estão visíveis. O dispositivo está fechado.
- 90 – O dispositivo é uma forma "L" com as telas no interior, às vezes chamadas de laptop, mesa ou modo de livro.
- 180 – O dispositivo é plano. As telas estão voltadas para a mesma direção.
- 360 - As telas estão voltadas para direções opostas e apenas uma tela está operando.
Postura do dispositivo versus ângulo da dobradiça
O ângulo da dobradiça já é usado para calcular a postura do dispositivo. A postura do dispositivo já está exposta por meio do MediaQuery , mas há situações em que o ângulo da dobradiça em si é importante para seu aplicativo. Esses dados brutos não fazem parte do MediaQuery, pois isso atualizaria todo o aplicativo com muita frequência. Para acessar esses dados, você pode usar o plug-in dual_screen Flutter.
Medir o ângulo da dobradiça
Adicione dual_screen à seção pub.dev dependencies
.
dependencies:
dual_screen: ^1.0.2+2
Importe e use em seus arquivos de dardos.
import 'package:dual_screen/dual_screen_info.dart';
DualScreenInfo.hingeAngleEvents.listen((double hingeAngle) {
print(hingeAngle);
});
DualScreenInfo.hasHingeAngleSensor.then((bool hasHingeSensor) {
print(hasHingeSensor);
});
Agora você tem acesso a duas novas propriedades estáticas:
hingeAngleEvents
: transmissão de fluxo de eventos do sensor de ângulo da dobradiça do dispositivo. Se o dispositivo não estiver equipado com um sensor de ângulo de dobradiça, o fluxo não produzirá eventos.hasHingeAngleSensor
: futuro retornando true se o dispositivo tiver um sensor de ângulo de dobradiça. Como alternativa, se seu aplicativo já usaMediaQuery.displayFeatures
ouMediaQuery.hinge
para se adaptar a fatores forma dobráveis ou de tela dupla, você pode assumir com segurança que o sensor de ângulo da dobradiça existe e quehingeAngleEvents
produz valores utilizáveis.
Amostra
Há um exemplo de software livre disponível nesta página do GitHub. Você pode testá-lo usando os emuladores dobráveis regulares disponíveis no Android Studio ou usando o emulador do Surface Duo.
A diferença entre o emulador do Surface Duo e outros dispositivos ou emuladores é que ele dá suporte a ângulos de dobradiça de 0 a 360 graus e também tem duas telas separadas.