React Native 之 ToastAndroid(提示语)(二十一)

ToastAndroid 是 React Native 提供的一个特定于 Android 平台的

API,用于显示简单的消息提示(Toast)。

两个方法:

1. ToastAndroid.show(message, duration, gravity)

  • message: 要显示的文本消息。
  • duration: Toast 的持续时间,可以是 ToastAndroid.SHORT 或 ToastAndroid.LONG。
  • gravity (可选): Toast 的位置,如 ToastAndroid.TOP, ToastAndroid.BOTTOM, ToastAndroid.CENTER。但在 Android API 级别 30(R)及更高版本中,gravity 参数可能不再起作用,因为 Android 系统可能根据设备的设置和上下文自动确定 Toast 的位置。
javascript 复制代码
import React, { Component } from 'react';  
import { Button, ToastAndroid, Platform } from 'react-native';  
  
class ToastExample extends Component {  
  showToast = () => {  
    if (Platform.OS === 'android') {  
      ToastAndroid.show('Hello, 这是一个 Toast 消息!', ToastAndroid.SHORT);  
      // 如果你想使用 gravity 参数(在 API 级别 30 以下可能有效)  
      // ToastAndroid.show('Hello, 这是一个 Toast 消息!', ToastAndroid.LONG, ToastAndroid.CENTER);  
    }  
  };  
  
  render() {  
    return (  
      <Button  
        title="显示 Toast"  
        onPress={this.showToast}  
      />  
    );  
  }  
}  
  
export default ToastExample;

2. ToastAndroid.showWithGravity(message, duration, gravity, xOffset, yOffset)

  • message: 要显示的文本消息。
  • duration: Toast 的持续时间,可以是 ToastAndroid.SHORT 或 ToastAndroid.LONG。
  • gravity: Toast 的位置,如ToastAndroid.TOP(居上对齐),ToastAndroid.BOTTOM(居下对齐),ToastAndroid.CENTER(居中对齐)。
  • xOffset: 水平偏移量。
  • yOffset: 垂直偏移量。
javascript 复制代码
ToastAndroid.showWithGravity(  
  'Hello, 这是一个 Toast 消息!',  
  ToastAndroid.LONG,  
  ToastAndroid.BOTTOM,  
  0, // xOffset  
  50 // yOffset  
);

在React Native中,对于iOS平台,使用Alert API来显示消息提示框

Alert.alert( Title,Msg,arr,option)

  • Title:第一个参数是标题(Alert Title)。
  • Msg:第二个参数是消息内容(My Alert Msg)。
  • arr:第三个参数是一个数组,包含提示框中的按钮配置。每个按钮都是一个对象,具有text(按钮文本)、onPress(点击时执行的函数)和style(可选,用于指定按钮样式,如'cancel')等属性。
  • option:第四个参数是一个可选的配置对象,这里设置了cancelable为false,表示用户不能通过点击提示框外部来关闭它(在iOS上有效,Android上默认就不能通过点击外部关闭)。
javascript 复制代码
import React, { Component } from 'react';  
import { Button, Alert } from 'react-native';  
  
class AlertExample extends Component {  
  showAlert = () => {  
    Alert.alert(  
      'Alert Title',  
      'My Alert Msg',  
      [  
        {  
          text: 'Cancel',  
          onPress: () => console.log('Cancel Pressed'),  
          style: 'cancel',  
        },  
        {  
          text: 'OK',  
          onPress: () => console.log('OK Pressed'),  
        },  
      ],  
      { cancelable: false }  
    );  
  };  
  
  render() {  
    return (  
      <Button  
        title="显示消息提示"  
        onPress={this.showAlert}  
      />  
    );  
  }  
}  
  
export default AlertExample;
相关推荐
用户938515635071 天前
useRef + Web Worker 实战:React 如何优雅地拥抱多线程
前端·javascript·react.js
大龄秃头程序员1 天前
CocoaPods 静态库 & 动态库实践笔记:从 Podfile 配置到 RN 新架构的一些思考
react native
sugar__salt1 天前
跟着 Demo 学 Pinia:两种仓库写法 + 完整 TodoList 复现
前端·javascript·vue.js·前端框架·vue
To_OC1 天前
从一个名字编辑组件开始,我把 React + TS 的数据流和副作用彻底搞明白了
前端·react.js·typescript
Darling噜啦啦1 天前
useRef 的三个段位:从 DOM 引用到 Web Worker,彻底搞懂 React 的"非响应式"利器
react.js
大家的林语冰1 天前
🎉 Vercel 官宣 Next 16.3 正式发布,GitHub 第一全栈框架再次进化!
前端·javascript·前端框架
张元清1 天前
React useEvent Hook:告别过期闭包的稳定回调 (2026)
javascript·react.js
用户938515635071 天前
从 DOM 编程到声明式 UI:React useRef 与 useState 底层全解析
前端·javascript·react.js
kisshyshy1 天前
前端路由进化史:从刷新白屏到SPA,手写一个Hash路由就懂了!
前端·javascript·react.js
名字还没想好☜1 天前
React 用 Portal + Context 实现全局 Toast:一次调用、自动消失与队列管理
前端·javascript·react.js·react·next.js