我正在尝试访问用户设备的麦克风,我已经成功地集成了 permissions_handler 包。当我单击麦克风图标时,请求许可消息按预期弹出,但我按拒绝来处理该情况,但是现在,当我单击麦克风图标时,没有消息弹出,因为我已经拒绝了许可。我的问题是,如果他们以前没有授予过他们的许可,我如何重新征求他们的许可?这是我的代码:
import 'package:flutter/material.dart';
import 'package:permission_handler/permission_handler.dart';
class InsideLeft extends StatefulWidget {
@override
_InsideLeftState createState() => _InsideLeftState();
}
class _InsideLeftState extends State<InsideLeft> {
@override
Widget build(BuildContext context) {
return Container(
child: GestureDetector(
child: Icon(Icons.mic),
onTap: () async {
var status = await Permission.microphone.status;
switch (status) {
case PermissionStatus.granted:
print('Granted');
break;
case PermissionStatus.denied:
print('denied');
await Permission.microphone.request();
break;
case PermissionStatus.restricted:
print('restricted');
break;
case PermissionStatus.undetermined:
print('undetermined');
break;
case PermissionStatus.permanentlyDenied:
print('Permanently denied');
break;
default:
}
},
),
);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用底部导航栏中的图标导航到我的应用程序中的不同页面。我已经尝试了很多教程,但似乎无法找到实现这一目标的最佳方法。我已经创建了我的主页(下面的代码)和 2 个附加页面,收件箱和登录,都返回简单的脚手架。
首先,我想知道这是否是我想要实现的最佳方式,其次,如何更改我的代码以允许我根据点击的图标导航到不同的页面。我知道下面的代码没有执行,我只是想展示我已经尝试过的东西。
我的代码:
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
_onTap(int index) {
Navigator.of(context)
.push(MaterialPageRoute<Null>(builder: (BuildContext context) {
return _children[_currentIndex];
}));}
final List<Widget> _children = [
HomePage(),
InboxPage(),
SignInPage()
];
int _currentIndex = 0;
@override
Widget build(BuildContext context) {
SizeConfig().init(context);
return Scaffold(
appBar: PreferredSize(preferredSize: Size(double.infinity, 75),
child: AppBar(
elevation: 0.0,
centerTitle: false,
title: Column(
children: <Widget>[
Align(
alignment: Alignment.centerLeft,
child: Text(
currentDate,
textAlign: TextAlign.left,
style: TextStyle(
color: titleTextColor,
fontWeight: …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的网络应用程序中实现“忘记密码”功能。
我有一个电子邮件文本编辑控制器作为输入字段和一个提升按钮,最终会将值推送到我的忘记密码函数。
为了处理错误,我尝试实现 if 语句以确保如果文本字段为空,则不会发送请求。
然而,在测试该块时,Flutter 似乎认为文本字段中有一个值,而我实际上没有输入任何内容?有人可以解释我哪里出了问题吗?谢谢。这是我的代码:
class ForgotPasswordScreen extends StatelessWidget {
final TextEditingController forgotPasswordController =
TextEditingController();
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Forgot Password'),
),
body: Center(
child: Container(
width: MediaQuery.of(context).size.width * 0.5,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
TextFormField(
controller: forgotPasswordController,
decoration: InputDecoration(
hintStyle: TextStyle(color: Colors.grey),
border: OutlineInputBorder()),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: ElevatedButton(
onPressed: () {
try {
if (forgotPasswordController.value != null) {
print('Success');
} else {
print("fail");
}
} catch (e) …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用最小日期和最大日期来计算价值增长/下降。我的数据目前如下所示:
Run Code Online (Sandbox Code Playgroud)Code Date Value 0 A 2020-12-31 80122.0 1 A 2019-12-31 45472.0 2 A 2018-12-31 31917.0 3 A 2017-12-31 23432.0 4 B 2020-12-31 0.0
对于代码 AI 需要保留最大(2020-12-31)和最小(2017-12-31)日期以及值,以便我稍后可以计算差异。我有多个代码,并且需要能够对每个代码应用相同的逻辑。关于解决这个问题的最佳方法有什么建议吗?
谢谢