添加闪屏 Activity 导航抽屉不起作用

Add splash screen Activity with Navigation Drawer is not working

我想向使用导航抽屉的新项目添加启动画面Activity

崩溃

如果我不使用 NavigationDrawer 它工作得很好 我以前试过并且它工作得很好 但是当我想在它包含 NavigationDrawer[=21 的项目中有启动画面时=]

并且我在我的项目中添加了一个新的 Activity (splash activity) 并且在

我的清单

我把 splash Activity 改成了 LAUNCHER 我改变了这个

   <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

至此

 <activity
        android:name=".Splash"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

和其他Activity 我改成了

        <activity android:name=".MainActivity"></activity>

我的清单是

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

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity
        android:name=".Splash"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

飞溅Activity

在splash中activity我用Thread去另一个Activity这样 在 onCreate

 thread = new Thread(new Runnable() {
        @Override
        public void run() {
            try {
                Thread.sleep(5000);
                Intent intent = new Intent(Splash.this, MainActivity.class);
                startActivity(intent);
                finish();  // if we want not to go back to splash screen again by press back , we should finish it
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    });
    thread.start();
 new Handler().postDelayed(new Runnable() {

        /*
         * Showing splash screen with a timer. This will be useful when you
         * want to show case your app logo / company
         */

        @Override
        public void run() {
            // This method will be executed once the timer is over
            // Start your app main activity
             Intent i = new Intent(this, MainActivity.class);
        startActivity(i);
        finish();

        }
    }, 5000);

在清单中:

<activity
    android:name=".MainActivity"
    android:theme="@style/AppTheme.NoActionBar">
 </activity>

在 oncreate 中使用此代码。

manifest.xml中使用:

<activity
        android:name=".MainActivity"
        android:theme="@style/AppTheme.NoActionBar">
 </activity>

您应该在位于 res=>values=>themes 文件夹中的 themes.xml 中创建另一个主题。

thems.xml

  <style name="Theme.YourProjectName.NoActionBar">
            <item name="windowActionBar">false</item>
            <item name="windowNoTitle">true</item>
    </style>

然后在您的清单中更新

   <activity
          android:name=".MainActivity"
          android:theme="@style/Theme.YourProjectName.NoActionBar"
          android:exported="false"/>