1

私はActivityGroup開発するつもりtabHostです。タブの 1 つには、2 つのアクティビティが含まれています。問題は、この 2 つのアクティビティ間を移動するときに、それらの間にスライドがないことです。古いアクティビティが消え、新しいアクティビティが自動的に画面に表示されます。

私が実装する必要があるのはこれです-アクティビティ2からアクティビティ1に戻ると、アクティビティ2は右にスライドして画面を離れる必要があり、新しいアクティビティ(アクティビティ1)は左から右にスライドして画面に入る必要があります.

インテントを使用してアクティビティ間を移動する場合、効果は Android のデフォルト スタイルに似ています。

私がこれまでに達成したことは次のとおりです。

アクティビティ 2 からアクティビティ 1 に移動しようとすると、アクティビティ 2 (古いもの) が画面から消え、画面が黒くなり、左から右にスライドして新しいアクティビティが画面に表示されます。古いアクティビティもスライドで画面から出られるようにできたらいいなと思います。

これは、古いアクティビティから新しいアクティビティに戻るための私のコードです。

Animation animation = null;

 Window oldWindow = manager.getCurrentActivity().getWindow();

 if(oldWindow != null)
 {
 animation = AnimationUtils.loadAnimation(this, R.anim.right_to_left);    
 View v =oldWindow.getDecorView();
 v.startAnimation(animation);

 }

 manager.destroyActivity(mIdList.get(index), true);
 mIdList.remove(index); index--;

 String lastId = mIdList.get(index);
 lastIntent = manager.getActivity(lastId).getIntent();
 newView = manager.startActivity(lastId, lastIntent).getDecorView();
 newView.startAnimation(AnimationUtils.loadAnimation(this, R.anim.left_to_right));

 if(newView != null)
 {
 setContentView(newView);
 }

One big bug is this: if I remove this line from my code: `setContentView(newView)` I get the desired effect for the old activity. Meaning the old activity leaves the screen by sliding, but the new one never comes in.

その行を元に戻すと、古いアクティビティはスライドせず、消えてしまいます!!!!

テストにSamsung Galaxyを使用して使用しようとしoverridePendingTransitionましたが、アニメーションには影響しません。

ここに私のxmlファイルがあります:

right_to_left.xml

<set xmlns:android="http://schemas.android.com/apk/res/android"
         android:shareInterpolator="true">
      <translate
       android:fromXDelta="0%" android:toXDelta="100%"
       android:fromYDelta="0%" android:toYDelta="0%"
       android:duration="3500" />
    </set>


 left_to_right.xml


 <set xmlns:android="http://schemas.android.com/apk/res/android"
         android:shareInterpolator="true">
        <translate android:fromXDelta="-100%" android:toXDelta="0%"
          android:fromYDelta="0%" android:toYDelta="0%"
         android:duration="3500"/>
       </set>

ありがとうございました。あなたが私を助けてくれることを願っています。

4

2 に答える 2

1

ViewPager でタブを使用してこれを実現できます。

このプロジェクトもチェックしてください。必要なものなどを見つけることができます。

于 2012-06-28T07:24:20.380 に答える
0

ViewAnimatorクラスを使用する

これにより、自由にアニメーション化できます

于 2012-06-28T07:27:32.140 に答える