原文:Flutter: Show/Hide Password in TextField/TextFormField
![](https://img.haomeiwen.com/i13083419/d605e6aa53af808b.png)
TextField/TextFormField 里隐藏输入的密码,只需要设置属性 obscureText 为 true:
TextField(
obscureText: true,
/* ... */
),
效果如图:
![](https://img.haomeiwen.com/i13083419/2062611e5ba179de.png)
显示输入的密码以便用户可以看到实际输入的内容,设置属性obscureText 为 false:
TextField(
obscureText: false,
/* ... */
),
效果如图:
![](https://img.haomeiwen.com/i13083419/2eb18149f04af5d1.png)
完整示例
App 预览
我们制作了一个简单的Flutter应用,在屏幕中心包含 TextField widget(你也可以使用TextFormField)。用户可以输入密码,并且可以通过widget右边的“眼型”图标按钮控制密码的显示和隐藏。
![](https://img.haomeiwen.com/i13083419/6a71a1859ba36381.gif)
完整代码
// main.dart
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
// Remove the debug banner
debugShowCheckedModeBanner: false,
title: 'Kindacode.com',
home: HomePage(),
);
}
}
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
bool _isObscure = true;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Kindacode.com'),
),
body: Padding(
padding: const EdgeInsets.all(25),
child: Center(
child: TextField(
obscureText: _isObscure,
decoration: InputDecoration(
labelText: 'Password',
suffixIcon: IconButton(
icon: Icon(
_isObscure ? Icons.visibility : Icons.visibility_off),
onPressed: () {
setState(() {
_isObscure = !_isObscure;
});
})),
),
),
),
);
}
}
网友评论