flutter - 根据用户选择颤动改变不安全的文本
问题描述
我很想做一个带有眼睛图标的密码 textFormField ,所以当用户按下图标时,obsecure 字段将被更改。但这似乎对我不太有效,如果有人知道我的代码中的问题出在哪里,那将非常有帮助。谢谢
这是我的代码:
class LogInPage extends StatefulWidget {
const LogInPage({Key? key}) : super(key: key);
@override
_LogInPageState createState() => _LogInPageState();
}
class _LogInPageState extends State<LogInPage> {
@override
Widget build(BuildContext context) {
Size size = MediaQuery.of(context).size;
double defaultLoginSize = size.height - (size.height * 0.2);
bool _secureText = true;
return Scaffold(
body: Container(
child: Align(
alignment: Alignment.center,
child: SingleChildScrollView(
child: Container(
width: size.width,
height: defaultLoginSize,
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.start,
children: [
SizedBox(height: 40),
Image.asset('assets/Image.png'),
SizedBox(height: 25),
Padding(
padding: EdgeInsets.only(left: 25, right: 25),
child: TextFormField(
decoration: InputDecoration(
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.green),
),
labelText: 'Password',
labelStyle: TextStyle(color: Colors.black),
// from now on it's the part of the code when I am trying to change
// the obsecure text
suffixIcon: GestureDetector(
onTap: () {
setState(() {
_secureText = !_secureText;
});
},
child: Icon(_secureText
? Icons.visibility_off
: Icons.visibility),
),
),
obscureText: _secureText,
),
),
],
),
),
),
),
),
);
}
}
解决方案
将这条线移到bool _secureText = true;
上面
@override
Widget build(BuildContext context) {
你很高兴。问题是您正在重绘小部件并且变量在小部件中并且每次都使用默认值重新创建。
推荐阅读
- r - R中样本数据外的均方预测误差(MSPE)
- swift - URLRequest.addValue() 导致 SwiftUI 日历恢复日期
- java - 在edittext中检测语言
- javascript - 使用纯Javascript根据列类名对表行进行排序
- javascript - 如何在 Node.js 中的 MongoDB 数据库上实现类似 git 的“分支”
- php - 如何使用 Mollie API 检索 Bancontact 的 QR 码?
- api - 从 Blazor WASM 获取到 dotnet franework Web API 的请求没有响应
- django - 将新应用程序添加到设置后,Django 服务器停止运行
- python - 如何使用 FASTApi 对 PostgreSQL 表进行 orderby 查询?
- javascript - 变量没有得到分配给它的信息