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