Bilişim dünyasına kaliteli, özgün ve Türkçe içerikler kazandırmayı hedefleyen bir platform..

friends friends friends

React Native Loading - ActivityIndicator

1-Eklenti Kullanmadan

React Native içinde Loading göstermek için ActivityIndicator kullanıyoruz. Öncelikle import işlemi yapmalıyız.

import { ActivityIndicator } from 'react-native';

Import işleminden sonra isloading adında bir değişken tanımlamamız gerekir. Başlangıç değeri false olacak.

const [isLoading, setIsLoading] = useState(false);

Webservisten gelen verilerimiz sayfaya yüklendikten sonra isLoading değerini true yaparak loading görselini sayfadan kaldırıyoruz ve ekrana yeni verileri basıyoruz. 

import React, { useState, useEffect } from 'react';
import { StyleSheet, SafeAreaView, ActivityIndicator, TouchableOpacity, Alert } from 'react-native';
import { Left, Body, Right, Thumbnail, Text, Button, List, ListItem, View } from 'native-base';
import { FlatList } from "react-native-gesture-handler";
import axios from 'axios';
export default function RandomUserScreen({ navigation }) {
  const [data, setData] = useState();

  const [isLoading, setIsLoading] = useState(false);

  const _getRandomUsers = async () => {
    setIsLoading(true);
    const result = await axios(
      'https://www.randomuser.me/api/?results=30',
    ).then(response => {
      console.log(response.data.results);
      setData(response.data.results);
      setIsLoading(false);
    })
      .then(json => {
        //console.log({ json })
      })
      .catch(error => {
        console.error({ error })
      });
  }
  useEffect(() => {
    _getRandomUsers();
    //console.log("Uygulama Yüklendi!");
  }, []);

  return (
    <>
      <SafeAreaView style={styles.container}>
        {
          isLoading
            ?
            <ActivityIndicator size="large" color="#00ff00" />
            :
            <List>
              <FlatList
                data={data}
                keyExtractor={(item, index) => index.toString()}
                renderItem={({ item, index }) => (
                  <ListItem avatar>
                    <TouchableOpacity
                      style={{ flex: 1, flexDirection: 'row' }}
                      onPress={() => {
                        Alert.alert("kol");
                      }}
                      key={index}
                    >
                      <Left>
                        <Thumbnail source={{ uri: item.picture.thumbnail, width: 52, height: 52, }} />
                      </Left>
                      <Body>
                        <Text>{item.name.first}</Text>
                        <Text note>{item.name.last}</Text>
                      </Body>
                      <Right>
                        <Text note>{item.location.city}</Text>
                      </Right>
                    </TouchableOpacity>
                  </ListItem>
                )}
              />
            </List>
        }
      </SafeAreaView>
    </>
  )
}
const styles = StyleSheet.create({
  container: {

  },

});

2-Eklenti Kullanarak

React Native içinde Loading göstermek için ikinci yol ise react-native-indicators eklentisi kullanmak.

Kurulum

npm install --save react-native-indicators

Import

import {
  BallIndicator,
  BarIndicator,
  DotIndicator,
  MaterialIndicator,
  PacmanIndicator,
  PulseIndicator,
  SkypeIndicator,
  UIActivityIndicator,
  WaveIndicator,
} from 'react-native-indicators';

Kullanımı

<DotIndicator color='white' />
React Native Loading - ActivityIndicator
React Native ActivityIndicator Loading react native loading
0 Beğeni
React-Native
Önceki Yazı

Thomas, şifreyi bulmazsa 220 milyon dolar kaybedecek

14 Ocak 2021 tarihinde yayınlandı.
Sonraki Yazı

React Native İnternet Bağlantısını Kontrol Etmek

14 Ocak 2021 tarihinde yayınlandı.
arrow