flutter - 颤振指南针示例
问题描述
我希望每个人都做得很好。我正在使用颤振(作为初学者),我想创建一个简单的指南针应用程序。我安装了flutter_compass并使用包提供的示例对其进行了测试,但它卡在了无限加载中。有没有办法解决这个问题?
注意:我注意到代码卡在connectState == wating
.
示例链接。
Widget _buildCompass() {
return StreamBuilder<CompassEvent>(
stream: FlutterCompass.events,
builder: (context, snapshot) {
if (snapshot.hasError) {
return Text('Error reading heading: ${snapshot.error}');
}
if (snapshot.connectionState == ConnectionState.waiting) {
return Center(
child: CircularProgressIndicator(),
);
}
double? direction = snapshot.data!.heading;
// if direction is null, then device does not support this sensor
// show error message
if (direction == null)
return Center(
child: Text("Device does not have sensors !"),
);
return Material(
shape: CircleBorder(),
clipBehavior: Clip.antiAlias,
elevation: 4.0,
child: Container(
padding: EdgeInsets.all(16.0),
alignment: Alignment.center,
decoration: BoxDecoration(
shape: BoxShape.circle,
),
child: Transform.rotate(
angle: (direction * (math.pi / 180) * -1),
child: Image.asset('assets/compass.jpg'),
),
),
);
},
);
}
解决方案
我刚刚了解到你不能在 IOS 模拟器上使用颤振罗盘包,因为它没有包正常工作所需的传感器,这就是它卡在无限加载屏幕上的原因(connectState == 等待),所以你只是必须在真正的 Iphone 设备中对其进行测试,它才能正常工作。
推荐阅读
- python-3.x - 如何使用 python 自动化 ms 团队频道上的消息发送过程?
- css - iOS上滚动网格下方的IONIC 4固定插槽不起作用
- azure - Get-AzSubscription 不工作,但 Get-AzureRMSubscription 工作
- docker - 替换 spring/tomcat docker 映像中的占位符属性
- c++ - QListWidget 行相互重叠
- google-app-engine - 在 Google Cloud Platform 中解释成本数据
- ios - 使用 Firebase Analytics,我将如何在 iOS 上使用浅色模式和深色模式跟踪/查看用户?
- vb.net - 检查 YouTube 频道是否正在直播
- elasticsearch - 如何根据溢出的小时范围过滤弹性搜索文档?
- jmeter - 具有 xml 数据的 jtl 报告无法在 jmeter 中创建 html