我正在实现我的自定义选项卡控件,但我很震惊的问题,我在水平模式下使用scrollview创建滚动标签,这里目前我得到滚动条但我只是想隐藏这个并使一个选项卡控件与android相同 . 有没有直接的解决方案?
我认为他们没有直接的解决方案 . 您只需通过扩展默认滚动视图渲染器来创建自定义渲染器 . 这就是我所做的,我希望它可以满足你的目的 .
Android Specific Code:
[assembly: ExportRenderer(typeof(Xamarin.Forms.ScrollView), typeof(ResponsiveFramework.Droid.ScrollViewEXRenderer))] namespace ResponsiveFramework.Droid { public class ScrollViewEXRenderer : ScrollViewRenderer { protected override void OnElementChanged(VisualElementChangedEventArgs e) { base.OnElementChanged(e); if (e.OldElement != null || this.Element == null) { return; } if (e.OldElement !=null) { e.OldElement.PropertyChanged -= OnElementPropetyChanged; } e.NewElement.PropertyChanged += OnElementPropetyChanged; } private void OnElementPropetyChanged(object sender, PropertyChangedEventArgs e) { if (ChildCount > 0) { GetChildAt(0).HorizontalScrollBarEnabled = false; } } } }
iOS Specific Code:
[assembly: ExportRenderer(typeof(Xamarin.Forms.ScrollView), typeof(ResponsiveFramework.iOS.ScrollViewEXRenderer))] namespace ResponsiveFramework.iOS { public class ScrollViewEXRenderer : ScrollViewRenderer { protected override void OnElementChanged(VisualElementChangedEventArgs e) { base.OnElementChanged(e); var result = this.Element.GetValue(ScrollViewPoperty.HorizontalScrollBarVisibleProperty); bool IsHorizontalScrollBarVisible = Convert.ToBoolean(result); if (IsHorizontalScrollBarVisible == false) { if (e.OldElement != null || this.Element == null) { return; } if (e.OldElement != null) { e.OldElement.PropertyChanged -= OnElementPropertyChanged; } e.NewElement.PropertyChanged += OnElementPropertyChanged; } } private void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e) { this.ShowsHorizontalScrollIndicator = false; } } }
1 回答
我认为他们没有直接的解决方案 . 您只需通过扩展默认滚动视图渲染器来创建自定义渲染器 . 这就是我所做的,我希望它可以满足你的目的 .
Android Specific Code:
iOS Specific Code: