Search code examples
androidandroid-activitysplash-screen

How to get rid of this default splash screen?


I've tried adding splash screens to my app, and while they do show before the main activity, this screen also always shows no matter what:

pic

Here is the code for MainActivity:

public class MainActivity extends Activity implements WelcomeFragment.StartQuestions, QuestionFragment.QuestionsAnswered {
@Override
protected void onCreate(Bundle savedInstanceState) {
    Parse.enableLocalDatastore(this);
    Parse.initialize(this, "***************************", "*****************************");
    super.onCreate(savedInstanceState);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);

    setContentView(R.layout.activity_main);
    loadingIcon = (ProgressBar) findViewById(R.id.loadingIcon);
    loadingIcon.setVisibility(View.GONE);
    checkInternetConnection();

    showWelcomeScreen();
}
}

showWelcomeScreen():

public void showWelcomeScreen(){
    Fragment fragment = getFragmentManager().findFragmentById(R.id.fragmentContainer);

    if (fragment == null){
        fragment = new  WelcomeFragment();
        getFragmentManager().beginTransaction()
                .add(R.id.fragmentContainer, fragment)
                .commit();
    } else {
        fragment = new  WelcomeFragment();
        getFragmentManager().beginTransaction()
                .replace(R.id.fragmentContainer, fragment)
                .commit();
    }
}

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
         android:id="@+id/fragmentContainer"
         android:layout_width="match_parent"
         android:layout_height="match_parent">

<RelativeLayout
    android:id="@+id/loadingPanel"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    >

    <ProgressBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:indeterminate="true" android:id="@+id/loadingIcon"/>
</RelativeLayout>

In MainActivity, I have already specified the removal of the top bar: this.requestWindowFeature(Window.FEATURE_NO_TITLE);

The app itself doesn't have the bar. Any activity that I place as being default in the manifest (acting as a splash screen) is nevertheless proceeded by the screen shown above when the app is launched.


Solution

  • You can't. Android will always attempt to show something using only the attributes of your theme before your Activity actually loads.

    In fact, the correct way to build a splash screen involves taking advantage of that fact and customizing your theme such that what displays during this time is your splash screen.