Android Fragments 如何在单活动架构中创建Splash?

6ss1mwsb  于 2023-10-19  发布在  Android
关注(0)|答案(2)|浏览(188)

我需要创建一个闪屏在一个应用程序配置与单一活动架构。
创建一个可绘制的文件并将其设置为主题,或者使用Google提供的“闪屏API”是很常见的。但在我的情况下,我不能使用这些,因为我必须显示任何文本或图像(如广告)上飞溅这不是应用程序的标志,或处理事件。
似乎最简单的方法是单独创建Splash Activity,这是反对SAA的。因此,我的想法是从MainActivity开始,但要创建SplashFragment,将第一个屏幕显示为SplashFragment,并在满足条件时移动到MainFragment(例如:经过一段时间后,要在主片段中显示的数据的加载完成)。
让我担心的是,我在一些文章中看到,将Splash组织为Activity或Fragment是一种反模式,但我不知道我认为的方式是否合适。用StartFragment而不是Splash的感觉来接近它会更好吗?

n8ghc7c1

n8ghc7c11#

要使用Fragment而不是Activity来实现启动页面,您可以遵循单个Activity架构的思想。您可以先在Activity中显示启动片段,然后在满足切换条件时将其替换为主片段。如果你需要一个高度定制的启动页面,你也可以考虑使用自定义视图而不是片段,你也可以考虑为复杂的应用程序使用基于适配器的架构,这允许更灵活地重用组件。

xpszyzbs

xpszyzbs2#

如果你想在单个Activity架构中拥有闪屏来实现这一点,你需要使用Android导航架构组件。如果你是fimilier与android导航组件,然后只需添加一些行在导航图中的行动,如下图

<navigation xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/registration_nav"
    app:startDestination="@id/splash">

    <fragment
        android:id="@+id/splash"
        android:name="com.example.application.fragments.SplashFragment"
        android:label="@string/spash"
        tools:layout="@layout/fragment_splash">

<action
        android:id="@+id/splashToLoginAction"
        app:destination="@+id/loginFrag"
        app:enterAnim="@anim/left_to_right"
        app:launchSingleTop="true"
        app:popEnterAnim="@anim/right_to_left"
        app:popUpTo="@id/splash"
        app:popUpToInclusive="true" />

</navigation>

否则,首先你需要学习Android导航组件在Android中,为此请从下面的链接中查看详细信息
https://developer.android.com/guide/navigation/get-started
如果你需要更多关于Android导航的信息,请联系我。

相关问题