id | title |
---|---|
toastandroid |
ToastAndroid |
This exposes the native ToastAndroid module as a JS module. This has a function 'show' which takes the following parameters:
- String message: A string with the text to toast
- int duration: The duration of the toast. May be ToastAndroid.SHORT or ToastAndroid.LONG
There is also a function showWithGravity
to specify the layout gravity. May be ToastAndroid.TOP, ToastAndroid.BOTTOM, ToastAndroid.CENTER.
The 'showWithGravityAndOffset' function adds on the ability to specify offset These offset values will translate to pixels.
Basic usage:
import {ToastAndroid} from 'react-native';
ToastAndroid.show('A pikachu appeared nearby !', ToastAndroid.SHORT);
ToastAndroid.showWithGravity(
'All Your Base Are Belong To Us',
ToastAndroid.SHORT,
ToastAndroid.CENTER,
);
ToastAndroid.showWithGravityAndOffset(
'A wild toast appeared!',
ToastAndroid.LONG,
ToastAndroid.BOTTOM,
25,
50,
);
The ToastAndroid API is imperative and this might present itself as an issue, but there is actually a way(hack) to expose a declarative component from it. See an example below:
import React, {Component} from 'react';
import {View, Button, ToastAndroid} from 'react-native';
// a component that calls the imperative ToastAndroid API
const Toast = (props) => {
if (props.visible) {
ToastAndroid.showWithGravityAndOffset(
props.message,
ToastAndroid.LONG,
ToastAndroid.BOTTOM,
25,
50,
);
return null;
}
return null;
};
class App extends Component {
constructor(props) {
super(props);
this.state = {
visible: false,
};
}
handleButtonPress = () => {
this.setState(
{
visible: true,
},
() => {
this.hideToast();
},
);
};
hideToast = () => {
this.setState({
visible: false,
});
};
render() {
return (
<View style={styles.container}>
<Toast visible={this.state.visible} message="Example" />
<Button title="Toggle Modal" onPress={this.handleButtonPress} />
</View>
);
}
}
static show(message, duration)
static showWithGravity(message, duration, gravity)
static showWithGravityAndOffset(message, duration, gravity, xOffset, yOffset)
ToastAndroid.SHORT;
ToastAndroid.LONG;
ToastAndroid.TOP;
ToastAndroid.BOTTOM;
ToastAndroid.CENTER;