2017-05-06 37 views
-4

我想要在啓動活動之前顯示啓動畫面。爲此,我創建了一個啓動畫面。但我的問題是,我在我的應用程序中有多個活動,現在我正在使用該單個啓動畫面。那麼,要做到這一點的正確方法是,我必須將其逐個添加到所有活動中,或者可以一次完成相同的活動,那麼該怎麼做?這是什麼方式?我想用更少的代碼數量在Android中的多個活動中添加相同的初始屏幕。

+0

爲什麼要在加載任何活動之前顯示啓動畫面?你甚至知道在Android中飛濺的目的? –

+0

是的,我知道飛濺的目的,這就是爲什麼我使用它!我爲我的應用使用了firebase,我的每項活動通常需要3-4秒才能從那裏加載數據..這並不好。所以我用飛濺在那裏加載緩存中的數據... – AnishKr

+0

你絕對與閃屏混淆。 Splash用於應用程序的啓動,以覆蓋系統延遲以及一些初始應用程序設置。爲了顯示下載和其他繁重的任務,Android,iOS,Web有一些名爲'ProgressBar'的東西,你一定可以給它一個堅實的背景,但它仍然會被稱爲進度條,並且會爲你的目的出色。 –

回答

0

詳細說明我的評論,你很困惑與閃屏的目的。正如其名說,它應該只是出現在開始第二的飛濺和消失,進一步反饋給用戶,以顯示你必須使用ProgressBar

在這裏你可以外部化的代碼爲ProgressBar有最小的代碼下載。

progress_bar_layout.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@color/colorAccent"> 
    <ProgressBar 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 
    <!-- Customize yoiur progress bar screen here--> 
</RelativeLayout> 

則包括此佈局,無論你想

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?> 
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" 
    tools:context="com.example.android.myApp.MainActivity" 
    tools:showIn="@layout/app_bar_main"> 

    <include 
     android:id="@+id/progress_bar" 
     android:visibility="gone" 
     layout="@layout/progress_bar_layout" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Hello World!" 
     app:layout_constraintBottom_toBottomOf="parent" 
     app:layout_constraintLeft_toLeftOf="parent" 
     app:layout_constraintRight_toRightOf="parent" 
     app:layout_constraintTop_toTopOf="parent" /> 

</android.support.constraint.ConstraintLayout> 

然後在您的Java類

private RelativeLayout progressBar; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    //some code 
    progressBar = (RelativeLayout)findViewById(R.id.progress_bar); 
    //control parent instead of progress bar only 
} 

private void beginDownload(){ 
    progressBar.setVisibility(View.VISIBLE); 
    //your download code 
} 

private void downloadComplete(){ 
    progressBar.setVisibility(View.GONE); 
    //codes once download is completed 
} 

P.S.如果你的設計明確需要一些不同的屏幕其他 比旋轉進度條,然後使用相同的方法,只需更改 progress_bar_layout.xml以反映您的設計,其他所有將 保持不變。 因此沒有這個任務的初始屏幕的概念,只是 進度條。