Překrytí načítání kolečka pokroku systému Android

Načítání dat od třetí strany je pro většinu aplikací systému Android nezbytné. Tato data se obvykle načítají a vkládají do uživatelského rozhraní při spuštění aplikace. Dobrým způsobem, jak uživateli ukázat, že se data načítají, je překryvné načítací kolečko na uživatelském rozhraní. Během tohoto překrytí byste nechtěli, aby uživatel mohl s uživatelským rozhraním interagovat, dokud načítání neskončí.

Prozkoumejme jeden ze způsobů, jak můžete ve své aplikaci navrhnout a implementovat překrytí kolečkem průběhu během načítání dat.

Pro tento účel jsem použil knihovnu Material Progress Wheel, kterou jsem našel na GitHubu. Nejprve ji přidejte do své aplikace na úrovni build.gradle.

implementation 'com.pnikosis:materialish-progress:1.7

Dále jsem vytvořil soubor XML, který zobrazuje kolečko pokroku jako vrstvu, kterou mohu umístit nad uživatelské rozhraní.

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:wheel="http://schemas.android.com/apk/res-auto"
android:id="@+id/progress_overlay"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:alpha="0.4"
android:animateLayoutChanges="true"
android:background="@android:color/black"
android:clickable="true"
android:focusable="true"
android:visibility="gone">
<com.pnikosis.materialishprogress.ProgressWheel
android:id="@+id/progress_wheel"
android:layout_width="80dp"
android:layout_height="80dp"
android:clickable="true"
android:layout_gravity="center"
wheel:matProg_barColor="#5588FF"
wheel:matProg_progressIndeterminate="true" />
</FrameLayout>

Vložení dvou řádků níže pro FrameLayout zabraňuje tomu, aby bylo uživatelské rozhraní klikací. Také určitě chcete, aby toto zobrazení bylo neviditelné v době, kdy se nepoužívá, proto jsme nastavili viditelnost jako gone. Pomocí této knihovny můžete přizpůsobit vizuální atributy kolečka průběhu, pro více informací se podívejte na repozitář GitHub.

android:clickable="true" 
android:focusable="true"
android:visibility="gone"

Chcete-li ji použít uvnitř jakéhokoli rozvržení v celé aplikaci, stačí ji zahrnout do souboru XML rozvržení. Dále můžete pomocí kódu manipulovat s viditelností.

<include layout="@layout/include_progress_overlay"/>

Aby se toto rozložení zobrazilo nad uživatelským rozhraním během načítání, musíme nastavit viditelnost jako visible. Po dokončení načítání můžete mít metodu zpětného volání, která nastaví viditelnost na invisible.

/* Progress overlay visible */
progressOverlay = findViewById(R.id.progress_overlay);
progressOverlay.setVisibility(View.VISIBLE);...
...
...public void setInvisible() {
progressOverlay.setVisibility(View.INVISIBLE);
}public void setVisible() {
progressOverlay.setVisibility(View.VISIBLE);
}

Finální produkt překrytí vidíte níže!

Překrytí kolečka v mé aplikaci Veox.

.

Leave a Reply