gpt4 book ai didi

android - 如何仅将 Material 主题与过渡用于 Android 应用程序中的某些 Activity ?

转载 作者:行者123 更新时间:2023-12-05 07:07:21 24 4
gpt4 key购买 nike

我有一个 Android 应用程序,其中整个应用程序主题不是 Material 主题,因此对于新 Activity ,我制作了另一个 Material 主题。 TextInputLayout 等 Material 小部件工作正常,但 Material 转换不起作用。

我在 res>transitions>explode.xml 中创建了一个 xml 文件,并在其中进行了此转换:

<?xml version="1.0" encoding="utf-8"?>
<explode xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="5000">

</explode>

我在 style.xml 中的 Material 主题是:

<style name="MaterialTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/logo_color</item>
<item name="android:statusBarColor">@android:color/white</item>
<item name="colorControlActivated">@color/name_primary_color</item>
<item name="colorControlHighlight">#A3ABBC</item>
<item name="android:navigationBarColor" tools:targetApi="lollipop">@color/name_primary_color</item>
<item name="android:windowLightStatusBar" tools:targetApi="23">true</item>

<item name="android:windowActivityTransitions">true</item>
<!-- specify enter and exit transitions -->
<item name="android:windowEnterTransition">@transition/explode</item>
<item name="android:windowExitTransition">@transition/explode</item>
<!-- specify shared element transitions -->
<item name="android:windowSharedElementEnterTransition">
@transition/change_image_transform</item>
<item name="android:windowSharedElementExitTransition">
@transition/change_image_transform</item>
</style>

现在,当我从一项 Activity 切换到另一项 Activity 时,过渡应该有效,但事实并非如此。我还尝试通过定义 Activity 中的过渡,例如:

private fun setupWindowAnimations() {
val slide =
TransitionInflater.from(this).inflateTransition(R.transition.explode)
window.exitTransition = slide
}

它也不起作用,所以我应该在这里做错什么?请帮忙。

最佳答案

您的 MaterialTheme 应该继承 Theme.Material.*,而不是 Theme.MaterialComponents.*

例如:

<style name="MaterialTheme" parent="android:Theme.Material.Light.NoActionBar">

如果您不能使用 Theme.Material.* 作为基础主题,您可以使用 windowAnimationStyle 来定义进入和退出动画而不是 Material 转换。参见 this answer举个例子。

关于android - 如何仅将 Material 主题与过渡用于 Android 应用程序中的某些 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62177165/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com