是否有 Android 相当于 iOS 上的 UISliders 的连续标志?
Is there an Android equivalent to the continuous flag for UISliders on iOS?
所以我正在编写一个 Xamarin.Forms 应用程序。我有一个音量滑块,需要在值更改时向设备发送音量命令。因为音量是通过 TCP 连接发送的并且必须由设备验证,并且设备可能并不总是实时做出反应(并且正在监视变化以及双向通信)连续滑块是不合适的。我只希望在用户松开拇指时触发 ValueChanged 事件。我在 iOS 上制作了一个自定义渲染器以覆盖 OnElementChanged 并将滑块的连续 属性 设置为 false:
protected override void OnElementChanged(ElementChangedEventArgs<Slider> e) {
base.OnElementChanged(e);
if (Control == null) return;
Control.MinimumTrackTintColor = UIColor.FromRGB(0xE6, 0x00, 0x06);
Control.Continuous = false;
}
这很有魅力。我想为 Android 做一些类似的事情,但我似乎不知道该怎么做。我可以在 ProgressDrawable 控件上调用等效标志或函数来获得此行为吗?
所以 Android 上的 Xamarin.Forms Slider
是 SeekBar
,因此您想从 [= 更新 Slider
的值13=] 事件与 ProgressChanged
事件(这是默认 SliderRenderer
.
的正常行为
因此,在您的自定义 SliderRenderer
中,您可以覆盖 ProgressChanged
事件(替换默认的 SliderRenderer
事件)并将 ProgressValue 保存到 class 级变量。
然后覆盖(添加)StopTrackingTouch
事件,然后将表单的 Slider.Value
设置为您从 ProgressChanged
事件保存在本地变量中的值。
进度已更改:https://developer.xamarin.com/api/event/Android.Widget.SeekBar.ProgressChanged/
StopTrackingTouch: https://developer.xamarin.com/api/event/Android.Widget.SeekBar.StopTrackingTouch/
所以我正在编写一个 Xamarin.Forms 应用程序。我有一个音量滑块,需要在值更改时向设备发送音量命令。因为音量是通过 TCP 连接发送的并且必须由设备验证,并且设备可能并不总是实时做出反应(并且正在监视变化以及双向通信)连续滑块是不合适的。我只希望在用户松开拇指时触发 ValueChanged 事件。我在 iOS 上制作了一个自定义渲染器以覆盖 OnElementChanged 并将滑块的连续 属性 设置为 false:
protected override void OnElementChanged(ElementChangedEventArgs<Slider> e) {
base.OnElementChanged(e);
if (Control == null) return;
Control.MinimumTrackTintColor = UIColor.FromRGB(0xE6, 0x00, 0x06);
Control.Continuous = false;
}
这很有魅力。我想为 Android 做一些类似的事情,但我似乎不知道该怎么做。我可以在 ProgressDrawable 控件上调用等效标志或函数来获得此行为吗?
所以 Android 上的 Xamarin.Forms Slider
是 SeekBar
,因此您想从 [= 更新 Slider
的值13=] 事件与 ProgressChanged
事件(这是默认 SliderRenderer
.
因此,在您的自定义 SliderRenderer
中,您可以覆盖 ProgressChanged
事件(替换默认的 SliderRenderer
事件)并将 ProgressValue 保存到 class 级变量。
然后覆盖(添加)StopTrackingTouch
事件,然后将表单的 Slider.Value
设置为您从 ProgressChanged
事件保存在本地变量中的值。
进度已更改:https://developer.xamarin.com/api/event/Android.Widget.SeekBar.ProgressChanged/
StopTrackingTouch: https://developer.xamarin.com/api/event/Android.Widget.SeekBar.StopTrackingTouch/