2013-11-26 21 views
3

每當我啓動我的應用程序,白色屏幕出現在標題欄的開頭。我不希望這個屏幕出現在我的應用程序中。我已經閱讀過以前的問題,但答案並不清楚。如何在Android中加載第一個活動之前刪除白屏?

我也使用啓動畫面,但在此之前出現白色屏幕。

我不想改變主題風格,因爲它要麼提高最低sdkVersion或變更的EditText,按鈕,複選框等風格

請幫助我,使我出這一點。

謝謝。

回答

3

前言:對於像這樣的問題,您應該發佈您的起始活動xml和onCreate()及相關方法。

當Android啓動您的應用程序時,它通常會使用黑色視圖來表示它正在啓動,這是我選擇了您的主題/風格改爲白色。如果你正在加載視圖,那麼你應該只看到這個空白頁(白色或黑色)50-200毫秒(我現在無法找到這個谷歌文檔)。如果您在onCreate方法中做了大量工作,則需要更長的時間。

通常爲了讓我的視圖顯示得更快,我將在加載後簡單地完成大部分鏈接工作。例如:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.initial_activity_layout); 

    //We use a handler so that the activity starts very fast 
    new Handler().postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      delayedInit(); 
     } 
    }, 100); 
} 

此外,移動應用程序通常不應有閃屏,除非他們需要一段時間來加載內容(如遊戲,第一次啓動文件等),不應該只是使用品牌您的應用程序,或顯示您的公司名稱。

更新(2015年7月31日)

谷歌應用程序現在正在以具有閃屏的方向(見驅動器,Gmail等)

此外,你不應該做除了在onCreate()方法中取消引用視圖之外的任何其他工作。任何長時間運行的操作(如從內存中檢索信息(數據庫,首選項等)都應該在AsyncTaskLoader或AsyncTask中完成。

+0

對該井感謝... 但它不工作,因爲我想.. :( 不滿意..:| – rishie

+0

你看到白頁多長時間?如果只是50-200毫秒,那麼你可以做任何事情。與iOS不同,Android不使用啓動圖像,因爲這些活動應該很快啓動。 – RocketSpock

+0

實際上它取決於RAM內存。如果有足夠的RAM空間,那麼加載所需的時間就會更少,而白色屏幕只會出現100-200毫秒。但是,如果可用RAM小於200 MB,則加載需要2-3秒,因此同一時間會出現白屏。 – rishie

0

如果使用則AppCompatActivity在style.xml創建如下主題:

<style name="Theme.Transparent" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="android:windowNoTitle">true</item> 
    <item name="android:windowActionBar">false</item> 
    <item name="android:windowFullscreen">true</item> 
    <item name="android:windowContentOverlay">@null</item> 
    <item name="android:windowIsTranslucent">true</item> 
</style> 

而且在SplashActivity清單文件添加主題:

android:theme="@style/Theme.Transparent" 
相關問題