expo-bottom-sheet
v1.0.11
Published
BottomSheet created for React Native.
Downloads
11
Readme
BottomSheet
BottomSheet created for React Native.
Compatibility
expo-bottom-sheet
requires react-native >= 0.73.6
Usage
import BottomSheet from "expo-bottom-sheet"
import { useRef } from "react"
import {
Animated,
Button,
Dimensions,
StyleSheet,
Text,
View,
} from "react-native"
const { height: DEVICE_HEIGHT } = Dimensions.get("window")
export default function App() {
const sheetRef = useRef()
return (
<View style={styles.container}>
<Button
title='firstPosition()'
onPress={() => sheetRef.current.firstPosition()}
/>
<Button
title='secondPosition()'
onPress={() => sheetRef.current.secondPosition()}
/>
<Button title='close()' onPress={() => sheetRef.current.close()} />
<BottomSheet
ref={sheetRef}
indexStart={-1}
animation={new Animated.Value(DEVICE_HEIGHT)}
>
<View
style={{ flex: 1, alignItems: "center", justifyContent: "center" }}
>
<Text>Hello World!</Text>
</View>
</BottomSheet>
</View>
)
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: "#fff",
alignItems: "center",
justifyContent: "center",
},
})
Props
| Name | Type | Default | Note |
|------------------------------|-------------------------------|---------|---------------------------------------------------------------|
| animation
| Animated.Value()
| | Use the Animated Value
of react native, the recommended value that it has to start should be the device height as shown in the example
| children
| Component
| | Component to render inside the Bottom Sheet
| handleComponent
| Function
| | Has to return a component for it to replace the default handle component
| indexStart
| Int
| 0 | Number to identify in which position it will start. If you want it to start in a closed state you should assign it to -1
| enablePanDownToClose
| Boolean
| False | It allows to close completely the Bottom Sheet
| style
| StyleSheet
| | Style for the content of the Bottom Sheet
| handleStyle
| StyleSheet
| | Style for the handle component
| disablePanDownChildren
| Boolean
| False | It disables the pan down responder for the children and it only works for the handle component, it's useful when you have to render a FlatList
SectionList
ScrollView
| bottomInsets
| Int
| 0 | Bottom inset to be added to the bottom sheet container, usually it comes from from react-native-safe-area-context hook useSafeAreaInsets.
Methods
| Method Name | Arguments | Note |
|------------------------------|-------------------------------|---------------------------------------------------------------|
| firstPosition
| | Opens the sheet to the first position
| secondPosition
| validate: Boolean
| Opens the sheet to the second position. Validate argument is so it validates or not to close completly the sheet if it's get executed again
| close
| validate: Boolean
| Closes completly the sheet. Validate argument is so it validates or not to close to firstPosition if it's get executed again