【问题标题】:Has anyone successfully used setExitTransition on L?有人在 L 上成功使用过 setExitTransition 吗?
【发布时间】:2014-07-23 14:48:00
【问题描述】:

我一直在尝试使用 L 开发者预览版附带的新奇动画,但遇到了很多困难。特别是,我没有看到任何花哨的动画。我正在尝试使用 Explode 退出过渡。代码如下:

public class ActivityA extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // inside your activity
        getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);

        // set an exit transition
        getWindow().setExitTransition(new Explode());
        setContentView(R.layout.activity_a);

        // Find our button and add our click handler
        Button button = (Button)findViewById(R.id.buttonA);
        button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // Transition to activity B
                Intent intent = new Intent(ActivityA.this, ActivityB.class);
                startActivity(intent);
            }
        });
    }
}

【问题讨论】:

    标签: android mobile android-5.0-lollipop android-transitions


    【解决方案1】:

    不要使用startActivity(intent); 开始另一个活动,而是使用以下语句。

    startActivity(intent,ActivityOptions.makeSceneTransitionAnimation(this).toBundle());
    

    如上所述,我开始了另一项活动,它对我有用。

    谷歌文档Defining Custom Animations中说的如下。

    【讨论】:

      【解决方案2】:

      解决了问题 - 你需要

      getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
      

      也调用您正在转换的活动!

      【讨论】:

      • 或者只是从Theme.Material.***继承你的风格,你会得到这个免费的。
      【解决方案3】:

      试试这个。

      public class MyActivity extends Activity {
      
          @Override
          protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              // enable transitions
              getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
              setContentView(R.layout.activity_my);
          }
      
          public void onSomeButtonClicked(View view) {
              getWindow().setExitTransition(new Explode());
              Intent intent = new Intent(this, MyOtherActivity.class);
              startActivity(intent,
                            ActivityOptions
                                .makeSceneTransitionAnimation(this).toBundle());
          }
      }
      

      requestFeatureonCreatesetExitTransition 之前 startActivity

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-28
        • 1970-01-01
        • 2011-09-16
        • 2017-12-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多