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
Animation 是否可以在StackLayout中为元素设置动画?_Animation_Xamarin_Xamarin.forms_User Experience - Fatal编程技术网

Animation 是否可以在StackLayout中为元素设置动画?

Animation 是否可以在StackLayout中为元素设置动画?,animation,xamarin,xamarin.forms,user-experience,Animation,Xamarin,Xamarin.forms,User Experience,在这里,我提供了我的布局的大致方案及其外观: 我想添加以下功能:首先,我希望密码标签和条目不可见,并且submit按钮位于它的位置。当用户输入有效用户名时,提交按钮应向下滑动,密码标签/条目应出现(如果用户名再次无效,则反转此动画)。我的想法是,我应该在密码标签/条目上方放置一个白色框,将其不透明度从0更改为1,然后按密码标签/条目高度滑动submit按钮。请注意,提交按钮应该位于密码标签/条目上方,因为滑动时,密码标签/条目可能会覆盖提交按钮 我的问题是:(1)是否有可能使用StackLay

在这里,我提供了我的布局的大致方案及其外观:

我想添加以下功能:首先,我希望密码标签和条目不可见,并且
submit
按钮位于它的位置。当用户输入有效用户名时,提交按钮应向下滑动,密码标签/条目应出现(如果用户名再次无效,则反转此动画)。我的想法是,我应该在密码标签/条目上方放置一个白色框,将其不透明度从0更改为1,然后按密码标签/条目高度滑动
submit
按钮。请注意,提交按钮应该位于密码标签/条目上方,因为滑动时,密码标签/条目可能会覆盖提交按钮

我的问题是:(1)是否有可能使用StackLayout,使用我现在使用的方案,如果没有,(2)我如何做到这一点?提前谢谢。

是的,这是可能的

首先,为了让按钮在页面上移动,你应该有一个绝对的布局。因此,请将所有内容包装在
绝对布局中

我会为密码输入设置初始的
Scale=“0”
。所以当用户得到有效的

这是Xaml

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="ThesisSFA.Pages.Page1">
  <AbsoluteLayout HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
    <StackLayout Orientation="Horizontal" AbsoluteLayout.LayoutFlags="PositionProportional" AbsoluteLayout.LayoutBounds="0.5,0.5,-1,-1">
      <Label Text="User:"></Label>
      <Editor x:Name="EditorUser" Text="" WidthRequest="100"></Editor>
    </StackLayout>
    <StackLayout x:Name="StackPass" Orientation="Horizontal" Scale="0" AbsoluteLayout.LayoutFlags="PositionProportional" AbsoluteLayout.LayoutBounds="0.5,0.6,-1,-1">
      <Label  Text="Pass:"></Label>
      <Editor Text="" WidthRequest="100"></Editor>
    </StackLayout>
    <Button x:Name="ButtonSubmit" Text="Submit" AbsoluteLayout.LayoutFlags="PositionProportional" AbsoluteLayout.LayoutBounds="0.5,0.6,-1,-1"></Button>
  </AbsoluteLayout>
</ContentPage>
这应该会让您知道如何继续

是的,这是可能的

首先,为了让按钮在页面上移动,你应该有一个绝对的布局。因此,请将所有内容包装在
绝对布局中

我会为密码输入设置初始的
Scale=“0”
。所以当用户得到有效的

这是Xaml

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="ThesisSFA.Pages.Page1">
  <AbsoluteLayout HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
    <StackLayout Orientation="Horizontal" AbsoluteLayout.LayoutFlags="PositionProportional" AbsoluteLayout.LayoutBounds="0.5,0.5,-1,-1">
      <Label Text="User:"></Label>
      <Editor x:Name="EditorUser" Text="" WidthRequest="100"></Editor>
    </StackLayout>
    <StackLayout x:Name="StackPass" Orientation="Horizontal" Scale="0" AbsoluteLayout.LayoutFlags="PositionProportional" AbsoluteLayout.LayoutBounds="0.5,0.6,-1,-1">
      <Label  Text="Pass:"></Label>
      <Editor Text="" WidthRequest="100"></Editor>
    </StackLayout>
    <Button x:Name="ButtonSubmit" Text="Submit" AbsoluteLayout.LayoutFlags="PositionProportional" AbsoluteLayout.LayoutBounds="0.5,0.6,-1,-1"></Button>
  </AbsoluteLayout>
</ContentPage>

这应该会让您了解如何继续

使用IsVisible属性以及FadeIn、Easing等动画,是否可能?是的。用一些代码试试你自己,如果你被卡住了,我们可以帮助你。使用IsVisible属性加上像FadeIn、Easing等动画,可能吗?是的。用一些代码尝试一下,如果您遇到问题,我们可以提供帮助。您的意思是用绝对布局替换主堆栈布局?是的,准确地将每个控件设置为绝对位置您的意思是用绝对布局替换主堆栈布局?是的,准确地将每个控件设置为绝对位置