如何从活动中退出时禁用supportFinishAfterTransition

时间:2016-03-16 03:21:03

标签: android

我有一个活动,我使用过渡动画制作动画,如下所示:

ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(activity, view, transitionStr);
ActivityCompat.startActivity(activity, intent, options.toBundle());

然而,当我回去时,我不希望动画以反向运行。那可能吗?我正在使用appcompat-v7:23.1.1中的AppCompatActivity。

3 个答案:

答案 0 :(得分:4)

Overriding Transition

的可能副本
finish();
Details.this.overridePendingTransition(R.anim.nothing,R.anim.nothing);

使用这段代码,您可以覆盖当前活动的完成动画。

答案 1 :(得分:4)

如果您不希望将该转换返回到父活动,请使用

@Service
public class PersonServiceImpl implements PersonService, UserDetailsService {

    private static final Logger logger = LoggerFactory.getLogger(PersonServiceImpl.class);


    private PersonDAO personDAO;

    private PersonService personService;

    public void setPersonDAO(PersonDAO personDAO) {
        this.personDAO = personDAO;
    }

      PersonController personController = new PersonController(personService);

      String res = personController.sub(codeJSON.toString());

....

}

如果您有时希望在返回父活动的过程中进行转换,则可以将其包装在条件中。示例用例是在显示插页式广告时禁用转换:

finish();

答案 2 :(得分:0)

根据the answers to this question,您无法反向运行动画。相反,我会创建另一个转换,它基本上与您在启动活动时使用的转换相反,并将其添加到活动中(R.anim.inverseTransition是您创建的转换):

finish();
Details.this.overridePendingTransition(R.anim.inverseTransition,R.anim.inverseTransition);

(有关详细信息,请参阅this answer