赞
踩
在移动应用开发中,TextField是一种常用的用户输入小部件。然而,有时向用户提供有关他们应该输入什么的提示或说明是很有帮助的。在本教程中,我们将创建一个Flutter应用程序,演示如何在TextField旁边包含一个图标提示。
现在,让我们深入代码。
import 'package:flutter/material.dart'; void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar( title: const Text('TextField with Icon Hint'), ), body: const Center( child: MyTextField(), ), ), ); } } class MyTextField extends StatefulWidget { const MyTextField({super.key}); @override _MyTextFieldState createState() => _MyTextFieldState(); } class _MyTextFieldState extends State<MyTextField> { final TextEditingController _controller = TextEditingController(); bool _isHintVisible = true; @override void dispose() { _controller.dispose(); super.dispose(); } @override Widget build(BuildContext context) { return Container( width: double.infinity, height: 50, margin: const EdgeInsets.symmetric(horizontal: 50), decoration: BoxDecoration( color: Colors.grey.withOpacity(0.3), borderRadius: BorderRadius.circular(30), ), child: Stack( alignment: Alignment.center, children: [ Visibility( visible: _isHintVisible, child: const Row( mainAxisAlignment: MainAxisAlignment.center, children: [ Icon(Icons.info), SizedBox(width: 5), Text('提示文本'), ], ), ), TextField( controller: _controller, textAlign: TextAlign.center, decoration: const InputDecoration( contentPadding: EdgeInsets.symmetric(horizontal: 25), border: InputBorder.none, ), onChanged: (value) { setState(() { _isHintVisible = value.isEmpty; }); }, ), ], ), ); } }
通过本教程,您学会了如何在Flutter应用程序中创建一个带有图标提示的TextField。您可以根据自己的需要进一步定制该TextField,以使其符合您的应用程序设计和用户体验需求。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。