registerForActivityResult 未显示窗口动画

问题描述 投票:0回答:1

我有一个片段,它使用如下代码打开地图活动:

private val openMapResultLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
    presenter.onMapActivityResult(result.resultCode, result.data)
}

我用

启动了活动

openMapResultLauncher.launch(intent)

我的活动是基本的,并且通过 AndroidManifest 分配了一个主题,如下所示:

    <activity
        android:name=".ui.main.MapActivity"
        android:theme="@style/MapTheme"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="adjustNothing"/>

这是我的主题:

<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="MapTheme" parent="@style/Theme.MaterialComponents.DayNight.NoActionBar">
        <item name="android:windowAnimationStyle">@style/MapTheme.WindowAnimationStyle</item>
    </style>

    <style name="MapTheme.WindowAnimationStyle">
        <item name="android:windowEnterAnimation">@anim/activity_enter</item>
        <item name="android:windowExitAnimation">@anim/activity_exit</item>
    </style>
</resources>

我无法控制活动启动时运行的动画。我已经尝试了我能想到的一切,它总是只使用从中心默认动画的缩放,而我试图让它从右侧滑入。

我已经尝试过了

val options = ActivityOptionsCompat.makeCustomAnimation(requireActivity(), R.anim.activity_enter, R.anim.activity_exit)
        openMapResultLauncher.launch(intent, options)

我已经尝试过了

requireActivity().overridePendingTransition(R.anim.activity_enter, R.anim.activity_exit)

我做错了什么?

android kotlin android-activity appcompatactivity
1个回答
0
投票

基于:https://developer.android.com/develop/ui/views/animations/transitions/start-activity#custom-trans

看起来你可以直接把它放在主题中,例如

<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="MapTheme" parent="@style/Theme.MaterialComponents.DayNight.NoActionBar">
        <item name="android:windowEnterAnimation">@anim/activity_enter</item>
        <item name="android:windowExitAnimation">@anim/activity_exit</item>
    </style>
</resources>

还有其他各种主题属性:

android:activityOpenEnterAnimation
android:activityOpenExitAnimation
android:activityCloseEnterAnimation
android:activityCloseExitAnimation
© www.soinside.com 2019 - 2024. All rights reserved.