ant-design / ant-design-mobile

Essential UI blocks for building mobile web apps.
https://mobile.ant.design
MIT License
11.63k stars 2.4k forks source link

SearchBar.showCancelButton support auto/never/always #1569

Closed paranoidjk closed 7 years ago

paranoidjk commented 7 years ago

Proposal API

SearchBar.showCancelButton: enum{auto, never, always}

paranoidjk commented 7 years ago

cc @shepherdwind

warmhug commented 7 years ago

这样的 API 有点复杂、尽量避免。never 这个情况、使用场景少的话、用户自己设置display: none;覆盖样式即可

paranoidjk commented 7 years ago

never 这个情况、使用场景少的话、用户自己设置display: none;覆盖样式即可

覆盖样式的方法是最下下之选,考虑长远的维护性。

我的意见,API 设计复杂的话可以考虑怎么简化。

paranoidjk commented 7 years ago

这个我觉得其实也不复杂,类似于 DatePicker.mode

paranoidjk commented 7 years ago

cc @benjycui 变量命名专家给点意见 😄

silentcloud commented 7 years ago

别搞这么复杂吧,参考一下 iOS UISearchBar @paranoidjk

https://developer.apple.com/documentation/uikit/uisearchbar?language=objc

https://developer.apple.com/documentation/uikit/uisearchbar/1624283-showscancelbutton?language=objc

paranoidjk commented 7 years ago

@silentcloud showCancelButton: boolean 满足不了这三个场景,还是你说哪一种场景不需要?

pingan1927 commented 7 years ago

never: never show cancel button

一般不用,用的话直接css隐藏掉

silentcloud commented 7 years ago

我的意思就是说,不需要做这样的改造,就 show or hide 就行了

paranoidjk commented 7 years ago

主要是现在的 showCancelButton: boolean 满足不了想隐藏的场景。

@pingan1927 这里有个 js 动画,css 隐藏不太好

@silentcloud show or hide, 那 show 是对应目前 showCancelButton: boolean true 还是 false 呢?总是少一种场景的

silentcloud commented 7 years ago

我截了native 的交互形式,可以参照一下,我觉得这两种就够了,后面有人提需求了再说吧 有个细节,show 的时候,cancel 是灰的,focus 的时候才亮

@paranoidjk

paranoidjk commented 7 years ago

@silentcloud 你的意思是去掉自动显示的那一种?

silentcloud commented 7 years ago

我记得不是有谁提个 issue 说那个动画性能差还是什么来着的?现在有的话,那就还是保留吧

我的截图只是个 交互方式参考

paranoidjk commented 7 years ago

close.

Suggest user use:

.am-search-cancel {
  display: none;
}