Slider/SeekBar 在 Android 7.0 设备 (Moto G4) 上无法正确显示

Slider/SeekBar not displaying correctly on Android 7.0 device (Moto G4)

在我的 xamarin forms 应用程序中,我使用 extendedsliders(带步长值的滑块)来设置照片质量和最大分辨率的值。在 Android 6.0 (Moto G2) 和 Android 6.0.1 (Moto G3) 上,滑块按预期显示。但是在 Android 7.0 (Moto G4) 上只绘制滑块的拇指。 (下图)

为了解决这个问题,我制作了一个效果并将其应用到滑块,如所述here,但这没有任何区别。

有没有人运行遇到过这个问题,你知道如何解决这个问题吗?

ExtendedSlider

settings.Children.Add(qualitySlider = new ExtendedSlider
{
    Maximum = 80,
    Minimum = 50,
    StepValue = 1,
    Rotation = 180,
    HorizontalOptions = LayoutOptions.FillAndExpand,
    Margin = new Thickness(0, 0, 20, 0)
}, 2, 3);
qualitySlider.Effects.Add(Effect.Resolve("Effects.TauwSliderEffect"));
qualitySlider.ValueChanged += OnQualitySliderValueChanged;

效果

using Android.Widget;
using Xamarin.Forms.Platform.Android;
using Android.Graphics;
using Xamarin.Forms;
using SafetyIncidentsApp.Droid;

[assembly: ResolutionGroupName("Effects")]
[assembly: ExportEffect(typeof(TauwSliderEffect), "TauwSliderEffect")]
namespace SafetyIncidentsApp.Droid
{
    class TauwSliderEffect : PlatformEffect
    {
        protected override void OnAttached()
        {
            var seekBar = (SeekBar)Control;
            seekBar.ProgressDrawable.SetColorFilter(new PorterDuffColorFilter(Xamarin.Forms.Color.FromHex("#FF4081").ToAndroid(), PorterDuff.Mode.SrcIn));
            seekBar.Thumb.SetColorFilter(new PorterDuffColorFilter(Xamarin.Forms.Color.FromHex("#FF4081").ToAndroid(), PorterDuff.Mode.SrcIn));
        }

        protected override void OnDetached()
        {
        }
    }
}

Android 6.0.1 和 Android 7.0

中滑块的屏幕截图

如果您在布局文件中或代码中将图层类型设置为软件,搜索栏将可见:

seekBar.SetLayerType(LayerType.Software, null);

(在此处找到解决方案:https://github.com/opendatakit/collect/pull/2085