2016-08-04 9 views
1

私はXamarin AndroidプログラミングとAndroidプログラミングの初心者です。OverridePendingTransitionが奇妙に動作していませんか?

//in the context of the main Activity 
StartActivity(someIntent); 
OverridePendingTransition(Android.Resource.Animation.SlideInLeft, 
          Android.Resource.Animation.SlideOutRight); 

今、私は左からスライドし、右のXML宣言を使用してから、スライドのための私自身のアニメーションを作成したいと思います:私は正常に期待される効果と、次のコードを実行します。私のXMLファイルはというフォルダの下にそれぞれslideInLeft.xmlslideOutRight.xmlという名前で置いてあります。ここでは、ファイルのコンテンツです:

slideInLeft.xml

<?xml version="1.0" encoding="utf-8" ?> 
<translate xmlns:android="http://schemes.android.com/apk/res/android" 
     android:duration="300" 
     android:fromXDelta="-100%" 
     android:toXDelta="0%"> 
</translate> 

slideOutRight.xml

今すぐコードは、単にこれに変更され
<?xml version="1.0" encoding="utf-8" ?> 
<translate xmlns:android="http://schemes.android.com/apk/res/android" 
     android:duration="350" 
     android:fromXDelta="0%" 
     android:toXDelta="100%"> 
</translate> 

//in the context of the main Activity 
StartActivity(someIntent); 
OverridePendingTransition(Resource.Animation.SlideInLeft, 
          Resource.Animation.SlideOutRight); 

しかし、アニメーションは機能していません。新しいアクティビティは短い遅延の後に表示されます(スライドの継続時間は300msです)。

これは私を混乱させます。私はなぜ、どのようにこれを動作させるための手がかりがありません。 Xamarinを使っている人だけでなく、Java開発者向けのAndroidプログラミングもこの問題の解決に役立つと思います。

ありがとうございました!

答えて

1

にXMLファイルを変更してみてください:

slideInLeft

<set xmlns:android="http://schemas.android.com/apk/res/android"> 
<translate android:fromXDelta="-100%p" android:toXDelta="0" 
     android:duration="350"/> 
</set> 

slideOutRight

<set xmlns:android="http://schemas.android.com/apk/res/android"> 
<translate android:fromXDelta="0" android:toXDelta="100%p" 
     android:duration="350"/> 
</set> 

これは動作するはずです。あなたがトランジションを見るために、より長い時間を設定してみてください

+0

まあ多分あなたはしていますこれを自分で試して、それが動作することを確認してください。しかし、私のコードは***も動作するはずです。***私は***スキーム***であるのに対し、***スキーマ***であるはずの非常に小さなタイプミスを修正します。とにかく助けてくれてありがとう、少なくとも私はあなたの答えからそのタイプミスを見た:) – Hopeless

+1

素晴らしい!良い一日を! – himanshu1496

0

:)

slideInLeft.xml:

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shareInterpolator="false" > 
    <translate android:duration="5000" 
    android:fromXDelta="-100%" 
    android:toXDelta="0%"/> 
    <alpha android:duration="5000" 
    android:fromAlpha="0.0" 
    android:toAlpha="1.0" /> 
</set> 

slideOutRight.xml:

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shareInterpolator="false" > 
    <translate android:duration="5000" 
    android:fromXDelta="0%" 
    android:toXDelta="100%"/> 
    <alpha android:duration="5000" 
    android:fromAlpha="1.0" 
    android:toAlpha="0.0" /> 
</set> 
+1

ありがとうございますが、期間は問題ではありません、500または300でも効果を見るのに十分です。 – Hopeless

+1

幸せなコーディング! :) – alway5dotcom

関連する問題