原文:Flutter: Show/Hide Password in TextField/TextFormField

TextField/TextFormField 里隱藏輸入的密碼,只需要設(shè)置屬性 obscureText 為 true:
TextField(
obscureText: true,
/* ... */
),
效果如圖:
顯示輸入的密碼以便用戶可以看到實(shí)際輸入的內(nèi)容,設(shè)置屬性obscureText 為 false:
TextField(
obscureText: false,
/* ... */
),
效果如圖:
完整示例
App 預(yù)覽
我們制作了一個(gè)簡(jiǎn)單的Flutter應(yīng)用,在屏幕中心包含 TextField widget(你也可以使用TextFormField)。用戶可以輸入密碼,并且可以通過(guò)widget右邊的“眼型”圖標(biāo)按鈕控制密碼的顯示和隱藏。

完整代碼
// 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;
});
})),
),
),
),
);
}
}