11

アクティビティには次のものがあります。

var flipper = FindViewById<ViewFlipper>(Resource.Id.flipper);
flipper.Touch += flipper_Touch;

タッチ ハンドラーの基本的な実装は次のようになります。

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;      
    }
}

これにより、さまざまなビュー間を移動できますが、左右にスライドさせたいと思います

私はそれを機能させる方法についていくつかの Java の例を見てきましたが、それを C# に変換する直接的な方法ではありません。

ビューをスライドさせるには何が必要ですか? animationinを定義する方法はありXMLますか? defined inと への呼び出しを
使用してアクティビティをスライドインおよびスライドアウトさせることができますが、その知識をここで適用する方法がわかりません。animationsXMLOverridePendingTransition

4

2 に答える 2

20

これにより、さまざまなビュー間を移動できますが、左右にスライドさせたいと思います

ViewFlipperは、そのViewAnimatorクラスを通じて、イン アクションとアウト アクションのアニメーションを設定するメソッドがいくつかsetInAnimation()ありsetOutAnimation()ます。これは Android SDK にありますが、MonoDroid に対応している必要があります (残念ながら私はよく知らないので、間違っている可能性があります)。目的のアニメーションを作成するには、上記の 2 つの方法を使用して目的のアニメーション (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);
于 2013-03-04T11:36:13.667 に答える