gpt4 book ai didi

android - 导航架构组件 - 启动画面

转载 作者:IT老高 更新时间:2023-10-28 13:34:36 26 4
gpt4 key购买 nike

我想知道如何使用导航架构组件实现闪屏。

到现在为止我有这样的东西

enter image description here

用户必须第一次在 ProfileFragment 中设置他的个人资料,并且可以从 ChatFragment 编辑他们的个人资料。

我的问题是我不知道如何在导航后从堆栈中删除 SplashFragment。我看过conditional navigation但不太明白。

最佳答案

当初始屏幕显示给用户几秒钟时,通常会误用启动屏幕,而用户正在浪费时间查看启动屏幕,而他们已经可以与应用程序交互。取而代之的是,您应该尽快将它们带到可以与应用程序交互的屏幕上。因为之前的 Splash screen 在 android 上被认为是反模式。但后来谷歌意识到在用户点击图标和你的第一个应用屏幕准备好交互之间仍然存在短暂的窗口,在此期间你可以显示一些品牌信息。这是实现启动画面的正确方法。

因此,要以正确的方式实现启动画面,您不需要单独的启动画面 fragment ,因为它会在应用加载中引入不必要的延迟。为此,您只需要特殊的主题。理论上,App 主题可以应用于 UI 并在您的 App UI 初始化并变得可见之前变得可见。所以简而言之,你只需要像这样的 SplashTheme:

<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowBackground">@drawable/splash_background</item>
</style>

splash_background drawable 应该是这样的:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
android:opacity="opaque"> <!-- android:opacity="opaque" should be here -->
<item>
<!--this is your background, you can use color, gradient etc.-->
<color android:color="@color/colorPrimary"/>
<!--<shape>
<gradient
android:angle="315"
android:endColor="#1a82ff"
android:startColor="#2100d3"
android:type="linear"/>
</shape> -->
</item>
<item>
<bitmap android:src="@drawable/ic_logo"
android:gravity="center"/>
</item>
</layer-list>

无论如何,您的 fragment 都将托管在某些 Activity 中,我们称之为 MainActivty。在 Manifest 中,只需将 SplashTheme 添加到您的 Activity 中(从用户点击应用图标的那一刻起,它就会显示启动画面主题):

<activity android:name=".ui.MainActivity"
android:theme="@style/SplashTheme">

然后在 MainActivity 中返回到您的常规 AppThemesuper 调用之前的 onCreate 中执行此操作:

override fun onCreate(savedInstanceState: Bundle?) {
setTheme(R.style.AppTheme)
super.onCreate(savedInstanceState)
.....

关于android - 导航架构组件 - 启动画面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51189835/

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