不为空时在TextField中显示图标

时间:2020-06-17 16:37:00

标签: flutter dart

我正在尝试做简单的事情。当TextField不为空时显示清除按钮以清除内容,并在内容为空时将其隐藏。这是代码

   final TextEditingController _controller = TextEditingController();
       ...

                   TextFormField(
                      controller: _controller,
                      decoration: InputDecoration(
                          suffixIcon: _controller.text.length > 0
                              ? IconButton(
                                  icon: Icon(Icons.clear, size: 16),
                                  onPressed: () {
                                    _controller.clear();
                                  },
                                )
                              : null))

这有效,但是在激活键盘时不起作用。您必须关闭键盘才能使其工作。。如何在使用控制器输入时使它实时生效?

2 个答案:

答案 0 :(得分:2)

这是因为在关闭键盘会触发重建之前,您的UI才会重建,为此,您可以使用以下小技巧:

sparse_ratings = csr_matrix(pd.DataFrame.sparse.from_spmatrix(most_rated_movies_1k).to_coo())

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-35-6002e81c5a88> in <module>
      1 # Conversion to sparse csr matrix
      2 
----> 3 sparse_ratings = csr_matrix(pd.DataFrame.sparse.from_spmatrix(most_rated_movies_1k).to_coo())

~\AppData\Roaming\Python\Python37\site-packages\pandas\core\arrays\sparse\accessor.py in from_spmatrix(cls, data, index, columns)
    230         from pandas import DataFrame
    231 
--> 232         data = data.tocsc()
    233         index, columns = cls._prep_index(data, index, columns)
    234         sparrays = [SparseArray.from_spmatrix(data[:, i]) for i in range(data.shape[1])]

~\AppData\Roaming\Python\Python37\site-packages\pandas\core\generic.py in __getattr__(self, name)
   5272             if self._info_axis._can_hold_identifiers_and_holds_name(name):
   5273                 return self[name]
-> 5274             return object.__getattribute__(self, name)
   5275 
   5276     def __setattr__(self, name: str, value) -> None:

AttributeError: 'DataFrame' object has no attribute 'tocsc'

答案 1 :(得分:1)

每次输入更改时,您都需要更新状态:

println(s"Assigned partitions: $consumer.assignment()") --> []
println(s"Paused partitions: ${consumer.paused()}") --> []
println(s"Partitions for: ${consumer.partitionsFor(topicNAme)}") --> [Partition(topic=topicAAA, partition=0, leader=1, replicas=[1,2,3], partition=1, ... ]