AiForms.Effect 0.0.5 AddCommandにLongTapとRippleEffectを追加
Xamarin.Formsで割と何にでもCommandをくっつけるEffect - kamulog
にロングタップ(長押し)コマンドを追加しました。
ついでにAndroid限定ですが、押した感をRippleEffectで表現するようにしました。
追加パラメータ
- LongCommand
- ロングタップ時のコマンド
- LongCommandParameter
- ロングタップ時のコマンドパラメータ
- EnableRipple
- 押した感にRippleを使うかどうか。Android限定。trueで使用。デフォルトはtrue。使いたくない場合はfalseに設定。
デフォルトの挙動
- EffectColorのパラメータが未指定の場合は、押した感自体を表示しないのでRippleもオフになります。
- LongCommandが未指定の場合は何も起きず、押した感も起きません。ただしAndroidでRippleがオンの場合は長押しの効果は出ます。
動作の様子
Xamarin.Forms(Android)におけるRippleEffectとLongTap対応の様子 pic.twitter.com/oqT1SWjTKC
— かむ (@muak_x) 2017年1月25日
対応View
片っぱしから調べました(笑) 基本的に既にタップしたときの挙動が設定されているViewはだめですね。
iOS | Android | |
---|---|---|
ActivityIndicator | ✅ | ✅ |
BoxView | ✅ | ✅ |
Button | ✅ | ✅ |
DatePicker | ❌ | ✅ |
Editor | ❌ | ❌ |
Entry | ❌ | ❌ |
Image | ✅ | ✅ |
Label | ✅ | ✅ |
ListView | ✅ | ❌ |
Picker | ❌ | ✅ |
ProgressBar | ✅ | ✅ |
SearchBar | ❌ | ❌ |
Slider | ✅ | ❌ |
Stepper | ✅ | ❌ |
Switch | ❌ | ✅ |
TableView | ❌ | ❌ |
TimePicker | ❌ | ✅ |
WebView | ❌ | ❌ |
ContentPresenter | ✅ | ✅ |
ContentView | ✅ | ✅ |
Frame | ✅ | ❌ |
ScrollView | ❌ | ❌ |
TemplatedView | ✅ | ✅ |
AbsoluteLayout | ✅ | ✅ |
Grid | ✅ | ✅ |
RelativeLayout | ✅ | ✅ |
StackLayout | ✅ | ✅ |
おわりに
ComanndEffectはこれ以上は複雑になるのでこんなものかなと。
追加するとすればiOSにもそれなりの押した感Effectを加えることくらいですかね。
Ripple追加のコード解説はまた別枠で書きたいと思います。