Az ActivityIndicator segítségével tudunk visszajelzést adni az alkalmazás azon állapotáról, amikor éppen valami történik, folyamatban van.

AcrivityIndicator telepítése és használata
Része a react-native csomagnak is, tehát a React Native-val együtt települ. Ha ezt használjuk, akkor csak egy szimpla importra van szükség:
import { ActivityIndicator } from "react-native";
A react-native-paper csomag is tartalmazza. Most ennek használatát mutatom be.
A React Native Paper dokumentációjában fellelhető példa alapján nagyon egyszerű dolgunk van. Mivel az ActivityIndicator a react-native-paper csomag része, úgy először telepíteni kell ezt a csomagot:
yarn add react-native-paper@5.0.0-rc.6
vagy
npm install react-native-paper@5.0.0-rc.6
Ha ezen már túl vagyunk, akkor csak importálni kell néhány dolgot:
import { ActivityIndicator, MD2Colors } from 'react-native-paper';
Aztán tudjuk is használni. Íme egy Loading komponens, ami megjeleníti az ActivityIndicator-t:
const Loading = () => (
<ActivityIndicator size={50} animating={true} color={MD2Colors.blue300} />
);
Példa styled components és state használatával
Tegyük fel, hogy van valahol egy isLoading state változónk, ami pont azt hivatott jelezni, hogy valami a képernyőn folyamatban van. Valami betöltés éppen zajlik a háttérben. Ekkor az isLoading értéke true. Ezt használjuk fel egy feltételben.
A következő kódrészletnek a jelentése az, hogy ha isLoading === true, akkor csináld azt, ami az && után van:
{isLoading && (
<LoadingContainer>
<Loading size={50} animation={true} color={Colors.blue300} />
</LoadingContainer>
)}
Viszont hol van maga az ActivityIndicator? Az importálás szintén kell:
import { ActivityIndicator, Colors } from 'react-native-paper';
Aztán a fenti kódból látszik, hogy léteznie kell két komponensnek. Az egyik a LoadingContainer, a másik pedig a Loading. Ezeket a styled components segítségével készítettem el. A Loading komponens az maga az ActivityIndicator:
const Loading = styled(ActivityIndicator)`
margin-left: -25px;
`;
A margin-left: -25px szükséges különben a betöltés jelző kép kissé jobbra csúszva jelenik meg.
A másik styled komponens pedig egy react-native csomagbéli View. Ez tartalmazza a betöltés jelző komponenst:
const LoadingContainer = styled.View`
position: absolute;
top: 50%;
left: 50%;
`;
Ezzel a css formázással igazítjuk a konténer tartalmát pontosan a képernyő közepére.