Xamarin.forms中的垂直滑块?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Xamarin.forms中的垂直滑块?相关的知识,希望对你有一定的参考价值。

我试图在Xamarin.forms中实现垂直滑块。我知道我需要分别在iosandroid中创建渲染类。对于ios,我的渲染器似乎工作正常。对于Android我跟随链接https://forums.xamarin.com/discussion/69933/vertical-slider。但是上面链接中提供的解决方案给我留下了没有拇指的滑块。有没有办法在Xamarin.forms中实现Android的垂直滑块?

答案

这有点工作。它仍然有很多令人恼火的怪异,但是,它的核心工作是:具有垂直滑块,彼此相邻。

<AbsoluteLayout x:Name="slidersAbs" HeightRequest="300" HorizontalOptions="CenterAndExpand" WidthRequest="800">
    <Slider Rotation="-90" Minimum="0" Maximum="50" Value="0"
        AbsoluteLayout.LayoutBounds="0,.5,300,50" AbsoluteLayout.LayoutFlags="PositionProportional"/>
    <Slider Rotation="-90" Minimum="0" Maximum="80" Value="0"
        AbsoluteLayout.LayoutBounds=".5,.5,300,50" AbsoluteLayout.LayoutFlags="PositionProportional"/>
    <Slider Rotation="-90" Minimum="0" Maximum="100" Value="0"
        AbsoluteLayout.LayoutBounds="1,.5,300,50" AbsoluteLayout.LayoutFlags="PositionProportional"/>
</AbsoluteLayout>

我从实验中收集到的一些东西:

  1. 我不得不将WidthRequest设置为一个非常高的数字,以使滑块完全水平放出;在abs布局上放置边框可能有助于理清那里发生的事情。
  2. 你会注意到只有位置(X,Y)是比例的;如果你让它的高度/宽度变大,那么它会让你在其他布局方式中遇到困难,其中高度和宽度会反转,但仍然与屏幕成反比,这是一个烂摊子。根本不能在旋转时使用宽度/高度比例。
  3. 你认为疯狂的宽度和事物会导致某种滚动困境或其他冲突,但它实际上是完美的。
  4. 我已将最大值设置为50,80,100,因此很容易分辨哪个是哪个。正如您所希望的那样,0位于每个底部(不是顶部 - 旋转= 90将0置于顶部,-90固定此位置),最后一个滑块显示在右侧。

3 vertical sliders in Xamarin

https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/slider https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/layouts/absolute-layout

另一答案

我这样做。我认为很直观,我不必担心坐标。 X和Y仍然相对于想要的实际左侧和滑块顶部。请注意,SetLayoutBounds中的Rectangle边界具有有意交换的高度和宽度。

  Slider thisfader = new Slider();
  //coordinates swapped to accomodate rotation
  AbsoluteLayout.SetLayoutBounds(thisfader, new Rectangle(X, Y + Height, Height, Width));
  thisfader.AnchorX = 0; 
  thisfader.AnchorY = 0; //these set the rotation anchor on top left
  thisfader.Rotation = -90;

  AbsoluteLayout.Children.Add(thisfader);

以上是关于Xamarin.forms中的垂直滑块?的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin.Forms 中的计时器

如何使用 Xamarin Forms 为 iOS 项目制作可点击的滑块?

Xamarin Forms 将不同字体大小的标签垂直对齐到同一基线

Xamarin Forms - 在页面打开时填充自定义控件

Xamarin.Forms/UI:如何在 2 个布局之间垂直对齐项目

ScrollView 在 Xamarin Forms 中的另一个 ScrollView 内