【问题标题】:SuffixIcon not working with AutoCompleteTextFieldSuffixIcon 不适用于 AutoCompleteTextField
【发布时间】:2020-12-06 17:44:08
【问题描述】:

我希望每当文本字段中有一些文本时出现箭头图标,否则它应该消失。 如果我使用 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,
            ),
          ],
        ),
      ),
    );
  }
}

【问题讨论】:

    标签: flutter dart flutter-layout


    【解决方案1】:
    suffixIcon: Controller.text.length > 0 ? InkWell(
                                child: Icon(Icons.arrow_forward, color: Colors.grey,),
                                onTap: (){
                                  setState(() {
                                    Controller.clear();
                                  });
                                },
                              ) : SizedBox()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-09
      • 1970-01-01
      • 2020-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多