Khóa học react-native

ActivityIndicator trong React Native

0 phút đọc

ActivityIndicator là một component trong React Native được sử dụng để hiển thị các chỉ báo tải (loading indicators) dưới dạng vòng tròn quay. Nó rất hữu ích để thông báo cho người dùng biết rằng một tác vụ đang được thực hiện, chẳng hạn như tải dữ liệu từ mạng, xử lý một tác vụ CPU nặng, hoặc bất kỳ hành động nào có thể mất một khoảng thời gian để hoàn thành. ActivityIndicator giúp cải thiện trải nghiệm người dùng bằng cách cung cấp phản hồi trực quan rằng ứng dụng không bị treo hoặc không phản hồi.

Cú Pháp Cơ Bản

Để sử dụng ActivityIndicator trong React Native, bạn cần import nó từ thư viện react-native và sử dụng nó như một thành phần trong ứng dụng của bạn.

javascript Copy
import React from "react";
import { View, ActivityIndicator, StyleSheet } from "react-native";

const App = () => {
  return (
    <View style={styles.container}>
      <ActivityIndicator size="large" color="#0000ff" />
    </View>
  );
};

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: "center",
    alignItems: "center",
  },
});

export default App;

Các Thuộc Tính Quan Trọng của ActivityIndicator

animating

Thuộc tính animating xác định liệu chỉ báo tải có đang hiển thị hay không. Mặc định là true.

Ví dụ:

javascript Copy
<ActivityIndicator animating={true} />

size

Thuộc tính size xác định kích thước của chỉ báo tải. Các giá trị có thể bao gồm small, large, hoặc một số cụ thể (chỉ hỗ trợ trên Android).

Ví dụ:

javascript Copy
<ActivityIndicator size="large" />
<ActivityIndicator size={100} /> // Chỉ hỗ trợ trên Android

color

Thuộc tính color xác định màu sắc của chỉ báo tải.

Ví dụ:

javascript Copy
<ActivityIndicator color="#ff0000" />

hidesWhenStopped

Thuộc tính hidesWhenStopped xác định liệu chỉ báo tải có ẩn khi không hoạt động hay không. Mặc định là true.

Ví dụ:

javascript Copy
<ActivityIndicator hidesWhenStopped={false} />

Ví Dụ Chi Tiết về ActivityIndicator

Ví Dụ 1: Hiển Thị ActivityIndicator Cơ Bản

javascript Copy
import React from "react";
import { View, ActivityIndicator, StyleSheet } from "react-native";

const BasicActivityIndicator = () => {
  return (
    <View style={styles.container}>
      <ActivityIndicator size="large" color="#0000ff" />
    </View>
  );
};

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: "center",
    alignItems: "center",
  },
});

export default BasicActivityIndicator;

Ví Dụ 2: Hiển Thị ActivityIndicator với Trạng Thái Động

javascript Copy
import React, { useState } from "react";
import { View, Button, ActivityIndicator, StyleSheet } from "react-native";

const DynamicActivityIndicator = () => {
  const [animating, setAnimating] = useState(true);

  const toggleAnimating = () => {
    setAnimating(!animating);
  };

  return (
    <View style={styles.container}>
      <ActivityIndicator animating={animating} size="large" color="#0000ff" />
      <Button title="Toggle Activity Indicator" onPress={toggleAnimating} />
    </View>
  );
};

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: "center",
    alignItems: "center",
  },
});

export default DynamicActivityIndicator;

Ví Dụ 3: Hiển Thị ActivityIndicator với Vị Trí và Kích Thước Tùy Chỉnh

javascript Copy
import React from "react";
import { View, ActivityIndicator, StyleSheet } from "react-native";

const CustomActivityIndicator = () => {
  return (
    <View style={styles.container}>
      <ActivityIndicator size={100} color="#ff0000" style={styles.indicator} />
    </View>
  );
};

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: "center",
    alignItems: "center",
  },
  indicator: {
    margin: 20,
  },
});

export default CustomActivityIndicator;

Tùy Chỉnh ActivityIndicator

Sử Dụng Các Thuộc Tính Tùy Chỉnh

Bạn có thể sử dụng các thuộc tính tùy chỉnh để thay đổi giao diện và hành vi của ActivityIndicator.

Ví dụ:

javascript Copy
import React from "react";
import { View, ActivityIndicator, StyleSheet } from "react-native";

const CustomStyledActivityIndicator = () => {
  return (
    <View style={styles.container}>
      <ActivityIndicator
        size="large"
        color="#00ff00"
        style={styles.indicator}
      />
    </View>
  );
};

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: "center",
    alignItems: "center",
  },
  indicator: {
    backgroundColor: "#f0f0f0",
    padding: 10,
    borderRadius: 50,
  },
});

export default CustomStyledActivityIndicator;

Sử Dụng Thư Viện Bên Ngoài

Nếu bạn cần các chỉ báo tải phức tạp hơn, bạn có thể sử dụng các thư viện bên ngoài như react-native-indicators hoặc react-native-progress.

Sử Dụng react-native-indicators

Cài Đặt Thư Viện

bash Copy
npm install react-native-indicators

Sử Dụng Thư Viện

javascript Copy
import React from "react";
import { View, StyleSheet } from "react-native";
import { DotIndicator } from "react-native-indicators";

const CustomIndicator = () => {
  return (
    <View style={styles.container}>
      <DotIndicator color="blue" />
    </View>
  );
};

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: "center",
    alignItems: "center",
  },
});

export default CustomIndicator;

Sử Dụng react-native-progress

Cài Đặt Thư Viện

bash Copy
npm install react-native-progress

Sử Dụng Thư Viện

javascript Copy
import React from "react";
import { View, StyleSheet } from "react-native";
import * as Progress from "react-native-progress";

const ProgressIndicator = () => {
  return (
    <View style={styles.container}>
      <Progress.Circle size={100} color="red" indeterminate={true} />
    </View>
  );
};

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: "center",
    alignItems: "center",
  },
});

export default ProgressIndicator;

Các Kỹ Thuật Tối Ưu Hóa Sử Dụng ActivityIndicator

Sử Dụng StyleSheet để Tối Ưu Hóa Hiệu Suất

Sử dụng StyleSheet.create để định nghĩa các style giúp tối ưu hóa hiệu suất vì các style được tạo ra chỉ một lần và được tham chiếu lại nhiều lần.

Ví dụ:

javascript Copy
const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: "center",
    alignItems: "center",
  },
});

Tránh Sử Dụng Hàm Inline

Tránh sử dụng các hàm inline cho thuộc tính onPress để tránh việc tạo lại hàm mỗi khi component được render.

Ví dụ:

javascript Copy
const showToast = () => {
  ToastAndroid.show("This is a toast message", ToastAndroid.SHORT);
};

<Button title="Show Toast" onPress={showToast} />;

Các Hạn Chế của ActivityIndicator Component

Mặc dù ActivityIndicator component trong React Native rất mạnh mẽ, nhưng nó cũng có một số hạn chế:

  1. Tùy Chỉnh Giao Diện: ActivityIndicator không hỗ trợ nhiều tùy chỉnh giao diện như thay đổi font chữ, thêm biểu tượng, hoặc tạo nền gradient.
  2. Thời Gian Hiển Thị Cố Định: ActivityIndicator chỉ hỗ trợ hai giá trị thời gian hiển thị là SHORTLONG, không thể tùy chỉnh thời gian hiển thị cụ thể.
  3. Hiệu Suất: Khi sử dụng quá nhiều ActivityIndicator lồng nhau, hiệu suất của ứng dụng có thể bị ảnh hưởng.

Kết Luận

ActivityIndicator là một thành phần cơ bản và quan trọng trong React Native, giúp bạn tạo ra các giao diện người dùng mượt mà và hiệu quả. Bằng cách hiểu rõ các thuộc tính và cách sử dụng ActivityIndicator, bạn có thể tạo ra các giao diện người dùng mượt mà và hiệu quả. Hy vọng qua bài viết này, bạn đã có thể nắm bắt được cách sử dụng ActivityIndicator trong React Native và áp dụng vào các dự án của mình.

Avatar
Được viết bởi

Admin Team

Gợi ý câu hỏi phỏng vấn

Không có dữ liệu

Không có dữ liệu

Gợi ý bài viết
Không có dữ liệu

Không có dữ liệu

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào