[Android Studio] Google推薦的 等待 畫面顯示方式

在很多地方都會用到等待,例如下載文件、顯示圖片等

以前都是使用ProgressDialog,他會彈出一個視窗,在你面前轉圈圈

現在Google已經說不推薦使用,因為他會在最上層,讓使用者無法操作

現在建議的解決方式,差別就在於僅顯示動畫,但「不要用彈出視窗」

所以我們可以把等待動畫放在載入後會顯示的物件下方

這樣的好處就是圖片載入完成時會把「載入動畫」蓋住,使用者就看不到啦~

讓等待進度條放在要顯示的圖片下方,當圖片載入完成時會直接蓋住載入的轉圈圈動畫

如果放錯位置,把載入動畫放在上方的話,圖片載入成功後還是會看到載入動畫(也可以手動讓動畫不可見)

載入動畫放在圖片前面時,圖片載入完成後使用者還是會看到載入動畫


程式碼:

activity_main.xml

<ProgressBar
android:id="@+id/indeterminateBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:visibility="gone"
app:srcCompat="@drawable/hid" />


MainActivity.java

//模擬載入 //等待五秒
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
//模擬載入成功後 //等待五秒鐘後
show();
}
}, 5000);
private void show() {
ProgressBar progressBar = findViewById(R.id.indeterminateBar);
progressBar.setVisibility(View.GONE);

ImageView imageView = findViewById(R.id.imageView);
imageView.setVisibility(View.VISIBLE);
}





執行結果:


如果大家對上面的「爆炸圖」有興趣再留言告訴我^^


留言