Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何创建苹果&x27;s设计,如Windows&;中的切换按钮;使用Xamarin表单的Android应用程序?_Xamarin_Xamarin.forms - Fatal编程技术网

如何创建苹果&x27;s设计,如Windows&;中的切换按钮;使用Xamarin表单的Android应用程序?

如何创建苹果&x27;s设计,如Windows&;中的切换按钮;使用Xamarin表单的Android应用程序?,xamarin,xamarin.forms,Xamarin,Xamarin.forms,我想创建一个切换开关,它应该看起来像移动应用程序中的iOS切换开关,该应用程序的目标是Android、iOS和Windows平台 虽然Xamarin.Forms用于构建看起来像本机的应用程序,但我们需要创建一个切换开关,它在所有三个平台上都应该是相同的 我们尝试使用两个按钮创建一个类似外观的拨动开关,即在一个大按钮上方使用一个小圆形按钮 XAML: <Grid> <Grid.RowDefinitions> <RowDefinition Height="*

我想创建一个切换开关,它应该看起来像移动应用程序中的iOS切换开关,该应用程序的目标是Android、iOS和Windows平台

虽然Xamarin.Forms用于构建看起来像本机的应用程序,但我们需要创建一个切换开关,它在所有三个平台上都应该是相同的

我们尝试使用两个按钮创建一个类似外观的拨动开关,即在一个大按钮上方使用一个小圆形按钮

XAML:

<Grid>
  <Grid.RowDefinitions>
    <RowDefinition Height="*" />
    <RowDefinition Height="*" />
  </Grid.RowDefinitions>
  <Grid.ColumnDefinitions>
    <ColumnDefinition Width="*" />
    <ColumnDefinition Width="*" />
  </Grid.ColumnDefinitions>

  <ContentView Grid.Row="0" Grid.Column="1" x:Name="ToggleThisButton">
    <Button  BorderWidth="0" BorderRadius="32" Button.BackgroundColor="Red" />
  </ContentView>

  <ContentView Grid.Row="0" Grid.Column="1" x:Name="BackgroundButton">
    <Button BorderWidth="0" BorderRadius="32" />
  </ContentView>

</Grid>
// Appearance using padding 
protected override void OnAppearing()
    {
        base.OnAppearing();

        if (Device.Idiom == TargetIdiom.Phone)
        {
            ToggleThisButton.Padding = new Thickness(50, 20, 100, 250);
            BackgroundButton.Padding = new Thickness(50, 20, 20, 250);
        }

        if (Device.Idiom == TargetIdiom.Tablet)
        {
           ToggleThisButton.Padding = new Thickness(50, 30, 270, 275);
           BackgroundButton.Padding = new Thickness(50, 30, 50, 275);
        }
    }

)

问题: 当我们使用按钮来创建切换开关时,我们在Windows Tablet和Windows Phone中得到了按钮式鼠标悬停颜色更改、按钮按下效果、点击颜色更改等不需要的行为

那么,我如何创建一个类似于iOS的切换开关的切换开关,该开关在使用Xamarin的Android、Windows和iOS应用程序中工作


抱歉,无法上载屏幕截图/图像。

您需要使用适用于Android和任何Windows风格的CustomRenderer[s],但我强烈建议不要使用这种做法,以使其他平台看起来像其他平台。。。我见过一些项目试图这样做,但却陷入了死胡同。这些是不同的平台和Xamarin的意图。表单并不是让所有平台看起来都一样

但是,如果您无法与您的管理层和/或设计师交谈,以下链接将帮助您开始:


您需要为Android和任何Windows风格使用CustomRenderer[s],但我强烈建议不要使用这种做法,让其他平台看起来像其他平台。。。我见过一些项目试图这样做,但却陷入了死胡同。这些是不同的平台和Xamarin的意图。表单并不是让所有平台看起来都一样

但是,如果您无法与您的管理层和/或设计师交谈,以下链接将帮助您开始:

//Switch toggle animation using TranslateTo function:

if (Device.Idiom == TargetIdiom.Tablet)
{
 ToggleThisButton.TranslateTo(220, 0, 200, Easing.Linear);
}
if (Device.Idiom == TargetIdiom.Phone)
{
 ToggleThisButton.TranslateTo(50, 0, 200, Easing.Linear);
}