3

我的应用程序的当前流程是 Activity A -> Activity B ->Fragment B 我正在尝试实现 Activity 过渡动画。我已经阅读了许多关于使用 overridependingtransition() 的帖子,并且我已经实现了这些帖子中提到的几乎所有内容。不知何故,动画无法正常工作。

我需要这个才能在 Android 2.2 上工作,即 sdkversion 8

这是代码:

Activity A 
oncreate method

Intent detailIntent = new Intent(this, WordDetailActivity.class);
            detailIntent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
            detailIntent.putExtra(DbAdapter.KEY_ROWID, id);
                startActivity(detailIntent);
                overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);


 @Override
    protected void onPause() {
        super.onPause();
        overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
    }


Activity B

    @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();
        overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
    }

如果有人还可以建议我任何替代方法来实现到 android 2.2 的活动转换,那就太好了

4

4 回答 4

6

在手机设置中禁用动画的手机不会显示活动过渡动画......所以不要指望它。

此外,您无法更改这些用户设置。

于 2013-08-08T08:43:31.907 回答
2

而不是这样onPause()onResume()

@Override
public void onResume() {
    super.onResume();
    overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
}

并尝试使用`minSdk="5"

编辑

像这样试试

Activity_A.this.overridePendingTransition(R.anim.fade_in, R.anim.fade_out);

Activity_B.this.overridePendingTransition(R.anim.fade_in, R.anim.fade_out);

编辑 2

@Override
public void overridePendingTransition(int enterAnim, int exitAnim) {
    super.overridePendingTransition(enterAnim, exitAnim);
    Log.d(LOG_TAG, "In overridePendingTransition");
}

检查这个日志是否被命中,因为我们不知道这个方法是否被调用?(把它放在A和B里面)

另外请删除 detailIntent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);falg ,如果它被击中,则替换super.overridePendingTransition(enterAnim, exitAnim);super.overridePendingTransition(R.anim.fade_in, R.anim.fade_out);

于 2013-08-08T06:20:57.963 回答
1

除了 startActivity 之后,无需在其他任何地方编写。像这样写。

 Intent detailIntent = new Intent(this, WordDetailActivity.class);

 detailIntent.putExtra(DbAdapter.KEY_ROWID, id);
   startActivity(detailIntent);
 this.overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out)
于 2013-08-08T06:25:25.167 回答
0
    //annination indside fragment to translate fragment

      getFragmentManager()
            .beginTransaction()
            .setCustomAnimations(R.animator.slide_in_right,
                    R.animator.slide_in_left_out,     
                                            R.animator.slide_in_left,
                    R.animator.slide_in_right_out)
            .replace(R.id.linearlayout, new mFragment())
            .addToBackStack("fragments")
            .commit();

  // add inside activity to translate activity

 Intent intent = new Intent(mContext, AbcActivity.class);
            startActivity(intent);
            overridePendingTransition(R.anim.slide_right_in,
                    R.anim.slide_left_out);

  // put this inside OnBackPressed 
    overridePendingTransition(R.anim.slide_left_in, R.anim.slide_right_out);
于 2013-08-08T07:07:14.107 回答