首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >未执行活动转换(Lollipop)

未执行活动转换(Lollipop)
EN

Stack Overflow用户
提问于 2018-05-16 00:11:57
回答 1查看 0关注 0票数 0

我正在为活动X和活动Y之间的转换制作动画。 X包含带图像的列表,当单击图像时,将在活动Y中展开和“缩放” 。 所以,这张图片是XY之间的共享元素。我已经transitionName在XML布局中设置了它的属性。 这是开始活动Y的代码:

代码语言:javascript
复制
ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(this, clickedImage, clickedImage.getTransitionName());
startActivityForResult(intent, OPEN_PICTURE_REQUEST, options.toBundle());

在此之前,一切正常。但是,我也想在输入时为活动Y的布局设置动画。 为此,我已经在XML文件(picture_enter.xml)中定义了转换:

代码语言:javascript
复制
<transitionSet xmlns:android="http://schemas.android.com/apk/res/android"
    android:transitionOrdering="together">

    <transition
        class="android.transition.Explode"
        android:startDelay="200">
        <targets>
            <target android:targetId="@+id/top_toolbar_container" />
        </targets>
    </transition>

</transitionSet>

最后,在YonCreate的活动中,我感受到了转型:

代码语言:javascript
复制
TransitionInflater inflater = TransitionInflater.from(this);
Transition transition = inflater.inflateTransition(R.transition.picture_enter);
Window window = getWindow();
window.setEnterTransition(transition);

但这从来没有执行过。只有图像的“缩放”效果才能正常工作。我也尝试以编程方式定义过渡。 有什么建议么?

EN

回答 1

Stack Overflow用户

发布于 2018-05-16 10:10:27

应该将应用程序主题与下列窗口标记一起使用:

代码语言:txt
复制
<style name="CustomActionBarTheme" parent="Theme.AppCompat.Light.NoActionBar">

    <!-- enable window content transitions -->
    <item name="android:windowContentTransitions">true</item>

    <!-- enable overlapping of exiting and entering activities -->
    <item name="android:windowAllowEnterTransitionOverlap">true</item>
    <item name="android:windowAllowReturnTransitionOverlap">true</item>
</style>

在Mainfest文件中,应用程序内部标签使用Android:main=“@Style/CustomActionBarTheme”

在Activity X中,

代码语言:txt
复制
       ActivityOptionsCompat options = ActivityOptionsCompat
                                    .makeSceneTransitionAnimation(activity,img_pic, "img_pic");

“IMG”_PIC“是android:TrantionName=”img“_PIC“在活动X和活动Y的布局文件中。

为了进行转换,转换名称的值应该是相同的。

用活动选项打开Activity Y-Compat或ActivityOptions,

代码语言:txt
复制
Intent intent = new Intent(context,Activity_Y.class);
startActivity(intent, options.toBundle());
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100008482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档