Tim*_*hyP 6 android android-animation android-layout xamarin.android
在活动中,我有以下内容:
var flipper = FindViewById<ViewFlipper>(Resource.Id.flipper);
flipper.Touch += flipper_Touch;
Run Code Online (Sandbox Code Playgroud)
触摸处理程序的基本实现如下所示:
float oldTouchValue = 0;
void flipper_Touch(object sender, View.TouchEventArgs e)
{
var flipper = sender as ViewFlipper;
switch(e.Event.Action)
{
case MotionEventActions.Down:
oldTouchValue = e.Event.GetX();
break;
case MotionEventActions.Up:
float currentX = e.Event.GetX();
if (oldTouchValue < currentX)
{
flipper.ShowNext();
}
else if (oldTouchValue > currentX)
{
flipper.ShowPrevious();
}
break;
}
}
Run Code Online (Sandbox Code Playgroud)
这允许我在不同的视图之间导航,但我想让它向左/向右滑动
我已经看到了一些关于如何使它工作的Java示例,但没有直接将它转换为c#的方法.
使视图滑动需要什么,有没有办法定义animationin XML?
我可以使用animations定义XML和调用来使活动滑入和滑出OverridePendingTransition,但我不确定如何在这里应用这些知识.
Luk*_*rog 17
这允许我在不同的视图之间导航,但我想让它向左/向右滑动
在ViewFlipper已经通过其ViewAnimator类,一些方法来设置动画的进出动作,setInAnimation()和setOutAnimation().这是在Android SDK中,但应该在MonoDroid中有对应(不幸的是我不熟悉,所以我可能是错的).为了获得所需的动画,只需使用上面的两种方法来设置所需的动画(xml文件或以编程方式构建Animation),然后showNext/Previous像你当前那样调用方法.
你甚至在Android SDK中有一些幻灯片动画,但我不知道它们是否存在于MonoDroid中.
更新:这些方法确实在Monodroid中可用,并且暴露如下:
//Using one of the built in animations:
flipper.setInAnimation(this, Android.Resource.Animation.SlideInLeft);
flipper.setOutAnimation(this, Android.Resource.Animation.SlideOutRight);
//Using custom animations defined in XML
flipper.setInAnimation(this, Resource.Animation.slide_in_right);
flipper.setOutAnimation(this, Resource.Animation.slide_out_left);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17197 次 |
| 最近记录: |