繁体   English   中英

Android:应用程序不会加载我的启动画面并直接移动到登录屏幕

[英]Android: App won't load my splash screen and moves directly to the onboarding screens

我刚刚进入 Android 应用程序开发,并一直在零零碎碎地处理我的项目的一部分。

我首先创建了我的入职屏幕,然后制作了我的动画启动屏幕。 但是,当我运行我的应用程序时,我的启动画面没有显示,而是首先加载了入门页面。 我该如何解决这个问题,让我的应用程序在进入引导屏幕之前首先通过启动画面过渡?

这是我的 SplashActivity 类代码

public class SplashActivity extends AppCompatActivity {

    private static int SPLASH_SCREEN = 5000;

    // Variables
    Animation topAnim;

    ImageView image;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_splash);

        // Animations
        topAnim = AnimationUtils.loadAnimation(this,R.anim.top_animation);

        // Hooks
        image = findViewById(R.id.splashScreenLogo);
        image.setAnimation(topAnim);

        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                Intent intent = new Intent(SplashActivity.this, OnboardingActivity.class);
                startActivity(intent);
                finish();
            }
        }, SPLASH_SCREEN);

    }
}

这是我的 OnboardingActivity 类代码

public class OnboardingActivity extends AppCompatActivity {

    private OnboardingAdapter onboardingAdapter;
    private LinearLayout layoutOnboardingIndicators;
    private MaterialButton buttonOnboardingAction;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_onboarding);


        // Onboarding Screens
        layoutOnboardingIndicators = findViewById(R.id.layoutOnboardingIndicators);
        buttonOnboardingAction = findViewById(R.id.buttonOnboardingAction);

        setupOnboardingItems();

        final ViewPager2 onboardingViewPager = findViewById(R.id.onboardingViewPager);
        onboardingViewPager.setAdapter(onboardingAdapter);


        setupOnboardingIndicators();
        setCurrentOnboardingIndicator(0);


        onboardingViewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
            @Override
            public void onPageSelected(int position) {
                super.onPageSelected(position);
                setCurrentOnboardingIndicator(position);
            }
        });

        buttonOnboardingAction.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(onboardingViewPager.getCurrentItem() + 1 < onboardingAdapter.getItemCount()) {
                    onboardingViewPager.setCurrentItem(onboardingViewPager.getCurrentItem() + 1);
                }
                else {
                    startActivity(new Intent(getApplicationContext(), SignUpActivity.class));
                    finish();
                }
            }
        });

    }

}

编辑 - 我的清单文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.mentalhealthapp">

    <application
        android:allowBackup="true"
        android:icon="@drawable/treen_app_logo"
        android:label="treen"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".SplashActivity"></activity>
        <activity android:name=".HomeActivity" />
        <activity android:name=".SignInActivity" />
        <activity android:name=".SignUpActivity" />
        <activity android:name=".OnboardingActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

我应该在我的清单文件中更改什么?

您需要在 AndroidManifest.xml 文件中将 Launch 活动设置为 SplashActivity

<activity
     android:name=".SplashActivity">
     <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM