flutter - SuffixIcon 不适用于 AutoCompleteTextField

只要 textField 中有一些文本,我希望箭头图标出现,否则它应该消失。 如果我使用 TextField 而不是 AutoCompleteTextField,它工作正常。另外,如果我删除 suffixIcon 处的条件,即使那样它也能正常工作。 请参阅下面的代码。


class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  bool arrow = false;
  var controller = TextEditingController();

  @override
  void initState() {
    super.initState();
    controller.addListener(() {
      print(controller.text);
      setState(() {
        controller.text == '' ? arrow = false : arrow = true;
      });
    });
  }

  Widget suffixIcon() {
    var iconButton = IconButton(
        icon: Icon(Icons.arrow_forward),
        onPressed: () {},
        color: Theme.of(context).primaryColor);

    return arrow ? iconButton : null;
    // return iconButton;
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            AutoCompleteTextField(
              controller: controller,
              decoration: InputDecoration(
                suffixIcon: suffixIcon(),
              ),
              itemSorter: (a, b) {},
              suggestions: [],
              itemSubmitted: (data) {},
              itemFilter: (suggestion, String query) {},
              itemBuilder: (BuildContext context, suggestion) {},
              key: null,
            ),
          ],
        ),
      ),
    );
  }
}

最佳答案

suffixIcon: Controller.text.length > 0 ? InkWell(
                            child: Icon(Icons.arrow_forward, color: Colors.grey,),
                            onTap: (){
                              setState(() {
                                Controller.clear();
                              });
                            },
                          ) : SizedBox()

https://stackoverflow.com/questions/65171117/

相关文章:

javascript - 在 URL 中传递 Javascript 变量

javascript - Tailwind CSS 不能用 React 和 Express 编译?

javascript - 未捕获的 ReferenceError,Splide 未在 HTMLDoc

ios - 如何在 SwiftUI 中删除 `Form` 的左右填充?

amazon-web-services - 如何在外部公开 NATS 服务器

css - 以厘米(或英寸)为单位的窗口大小的媒体查询

c++ - 如何使用 GDB 进入一个函数而不是它的参数

javascript - 如何按表头单击对数组进行排序

c - 构建静态库并在编译时将其链接到内核模块

delphi - Delphi Sydney 10.4.1 上的 QuickReport