flutter BaseInputField和TextField有什么区别?

h9vpoimq  于 6个月前  发布在  Flutter
关注(0)|答案(1)|浏览(71)

已关闭。此问题需要更多focused。目前不接受回答。
**要改进此问题吗?**更新此问题,使其仅针对editing this post的一个问题。

5天前关闭。
Improve this question
我正在阅读一个flutter的源代码,里面有一个名为BaseInputField的小部件。BaseInputField是标准的Flutter小部件吗?如果是,当我们使用BaseInputField而不是TextField时,为什么?两者之间有什么区别,有什么好处?

vc9ivgsu

vc9ivgsu1#

BaseInputField不是一个标准的Flutter小部件,所以它很可能是为您正在查看的特定项目创建的自定义小部件。
开发人员经常创建自定义小部件来封装和重用整个项目中的代码。
另一方面,TextField是一个基本的Flutter小部件,用于收集用户的基本文本输入。
BaseInputField可以是一个自定义小部件,它扩展或 Package TextFieldTextFormField以提供附加功能或自定义外观。
示例代码:

import 'package:flutter/material.dart';

class BaseInputField extends StatelessWidget {
  final String hint;
  final TextEditingController controller;
  final TextInputType keyboardType;

  BaseInputField({
    required this.hint,
    required this.controller,
    this.keyboardType = TextInputType.text,
  });

  @override
  Widget build(BuildContext context) {
    return TextField(
      controller: controller,
      keyboardType: keyboardType,
      decoration: InputDecoration(
        hintText: hint,
        contentPadding: EdgeInsets.symmetric(vertical: 10.0, horizontal: 20.0),
        border: OutlineInputBorder(
          borderRadius: BorderRadius.all(Radius.circular(32.0)),
        ),
        enabledBorder: OutlineInputBorder(
          borderSide: BorderSide(color: Colors.blueAccent, width: 1.0),
          borderRadius: BorderRadius.all(Radius.circular(32.0)),
        ),
        focusedBorder: OutlineInputBorder(
          borderSide: BorderSide(color: Colors.blueAccent, width: 2.0),
          borderRadius: BorderRadius.all(Radius.circular(32.0)),
        ),
      ),
    );
  }
}

字符串
你可以在你的应用中这样使用这个BaseInputField:

BaseInputField(
  hint: 'Enter your text here',
  controller: myTextController,
)

相关问题