gpt4 book ai didi

c# - 是否有一个 Android 相当于 iOS 上 UISliders 的连续标志?

转载 作者:太空宇宙 更新时间:2023-11-03 23:16:44 26 4
gpt4 key购买 nike

所以我正在编写一个 Xamarin.Forms 应用程序。我有一个音量 slider ,需要在值更改时向设备发送音量命令。因为音量是通过 TCP 连接发送的并且必须由设备验证,并且设备可能并不总是实时使用react(并且正在监视变化以及双向通信)连续 slider 是不合适的。我只希望在用户松开拇指时触发 ValueChanged 事件。我在 iOS 上制作了一个自定义渲染器来覆盖 OnElementChanged 并将 slider 的连续属性设置为 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 更新 的值code>StopTrackingTouch 事件与 ProgressChanged 事件(这是默认 SliderRenderer 的正常行为。

因此,在您的自定义 SliderRenderer 中,您可以覆盖 ProgressChanged 事件(替换默认的 SliderRenderer 事件)并将 ProgressValue 保存到类 -水平变量。

然后覆盖(添加)StopTrackingTouch 事件,然后将表单的 Slider.Value 设置为您从 ProgressChanged< 保存在本地 var 中的值 事件。

进度已更改:https://developer.xamarin.com/api/event/Android.Widget.SeekBar.ProgressChanged/

停止跟踪触摸:https://developer.xamarin.com/api/event/Android.Widget.SeekBar.StopTrackingTouch/

关于c# - 是否有一个 Android 相当于 iOS 上 UISliders 的连续标志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37016228/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com