react-native-drawer-menu
Một thành phần drawer cho Ứng dụng React Native (ios / android)
Tương tự thành phần menu drawer của ứng dụng QQ mobile.
Ví dụ
Nền tảng iOS
Nền tảng Android
Sử dụng
GỢI Ý Trong iOS, thành phần menu drawer nên chỉ được sử dụng trong tuyến đỉnh, vì hành động vuốt từ bên trái của màn hình sang bên phải được thiết kế để loại bỏ tuyến đường khỏi ngăn xếp điều hướng. Bạn nên tránh xung đột của tương tác giao diện người dùng. Ít nhất, đừng sử dụng menu drawer
Left
để bao gồm các tuyến đường con, hãy sử dụng menu drawerRight
nếu cần.
cài đặt từ npm
npm install --save react-native-drawer-menu
nhập vào dự án
import Drawer from 'react-native-drawer-menu';
import {Easing} from 'react-native'; // Customize easing function (Optional)
// in render function
render() {
// prepare your drawer content
var drawerContent = (<View style={styles.drawerContent}>
<View style={styles.leftTop}/>
<View style={styles.leftBottom}>
<View><Text>Drawer Content</Text></View>
</View>
</View>);
// customize drawer's style (Optional)
var customStyles = {
drawer: {
shadowColor: '#000',
shadowOpacity: 0.4,
shadowRadius: 10
},
mask: {}, // style of mask if it is enabled
main: {} // style of main board
};
return (
<Drawer
style={styles.container}
drawerWidth={300}
drawerContent={drawerContent}
type={Drawer.types.Overlay}
customStyles={{drawer: styles.drawer}}
drawerPosition={Drawer.positions.Right}
onDrawerOpen={() => {console.log('Drawer is opened');}}
onDrawerClose={() => {console.log('Drawer is closed')}}
easingFunc={Easing.ease}
>
<View style={styles.content}>
<Text>{Object.values(Drawer.positions).join(' ')}</Text>
<Text>{Object.values(Drawer.types).join(' ')}</Text>
</View>
</Drawer>
);
}
Lưu ý: Tham chiếu của menu drawer được truyền vào phần tử nội dung của menu drawer, bạn có thể sử dụng
this.props.drawer
để gọi các phương thức của đối tượng Menu Drawer nhưthis.props.drawer.closeDrawer()
Thuộc tính
Thuộc tính | Loại | Mặc định | Mô tả |
---|---|---|---|
disabled | Bool | false | Vô hiệu hóa thành phần hoặc không. |
leftDisabled | Bool | false | Vô hiệu hóa menu drawer bên trái hoặc không. |
rightDisabled | Bool | false | Vô hiệu hóa menu drawer bên phải hoặc không. |
type | String | ‘default’ | Loại của menu drawer. default / overlay Bạn cũng có thể sử dụng giá trị tĩnh Drawer.types.Default / Drawer.types.Overlay . |
drawerPosition | String | ‘left’ | Xác định vị trí mà menu drawer xuất hiện. left / right / both Bạn cũng có thể sử dụng giá trị tĩnh Drawer.positions.Left / Drawer.positions.Right / Drawer.positions.Both . |
drawerWidth | Number | 200 | Chiều rộng của menu drawer, nó bị vô hiệu hóa khi sử dụng loại replace . |
drawerContent | Thành phần React | null | Nội dung của menu drawer, mặc định là nội dung bên trái. |
leftDrawerContent | Thành phần React | null | Nội dung của menu drawer bên trái. |
rightDrawerContent | Thành phần React | null | Nội dung của menu drawer bên phải. |
duration | Số | 160 | Thời gian của hoạt ảnh để mở hoặc đóng menu drawer. |
maskAlpha | Số | 0.4 | Giá trị tối đa là 0.5, giá trị độ mờ của mặt nạ trên bảng chính khi menu drawer mở. Mặt nạ có thể bị vô hiệu hóa bằng cách sử dụng thuộc tính showMask . |
showMask | Bool | true | Liệu có hiển thị mặt nạ khi menu drawer mở hay không. |
customStyles | Đối tượng | {} | Tùy chỉnh kiểu của menu drawer. Bạn có thể tùy chỉnh main / mask / drawer / leftDrawer / rightDrawer . |
onDrawerOpen | hàm | null | Kích hoạt khi menu drawer đã hoàn toàn mở. |
onLeftDrawerOpen | hàm | null | Kích hoạt khi menu drawer bên trái đã hoàn toàn mở. |
onRightDrawerOpen | hàm | null | Kích hoạt khi menu drawer bên phải đã hoàn toàn mở. |
onDrawerClose | hàm | null | Kích hoạt khi menu drawer đã hoàn toàn đóng. |
onLeftDrawerClose | hàm | null | Kích hoạt khi menu drawer bên trái đã hoàn toàn đóng. |
onRightDrawerClose | hàm | null | Kích hoạt khi menu drawer bên phải đã hoàn toàn đóng. |
startCapture | Bool | false | Liệu nắm bắt các sự kiện chạm vào màn hình khi nhấp vào. |
moveCapture | Bool | false | Liệu nắm bắt các sự kiện chạm vào màn hình khi vuốt trên màn hình. |
easingFunc | hàm | null | Hàm giãn cách của hoạt ảnh menu drawer, mặc định là Easing.linear . Bạn có thể truyền hàm như Easing.ease /Easing.bezier(x1, y1, x2, y2) /Easing.sin /Easing.elastic(times) /Easing.bounce vv. |
responderNegotiate | hàm | null | Tùy chỉnh điều kiện để thiết lập pan responder, evt & gestureState sẽ được truyền vào dưới dạng đối số. Điều kiện mặc định là 20% bên trái màn hình trong menu drawer left , hoặc 20% bên phải màn hình trong menu drawer right . |
Phương thức thể hiện
Sử dụng ref để gọi các phương thức thể hiện.
Phương thức | Mô tả |
---|---|
openDrawer | Mở menu drawer thủ công |
openLeftDrawer | Mở menu drawer bên trái thủ công |
openRightDrawer | Mở menu drawer bên phải thủ công |
closeDrawer | Đóng ngăn kéo một cách thủ công. drawerContent có một tham chiếu đến thể hiện ngăn kéo, bạn cũng có thể kích hoạt nó bằng cách sử dụng nó. |
closeLeftDrawer | Đóng ngăn kéo bên trái một cách thủ công |
closeRightDrawer | Đóng ngăn kéo bên phải một cách thủ công |
Chi tiết tải về:
Tác giả: Tinysymphony
Nguồn: https://github.com/Tinysymphony/react-native-drawer-menu
Giấy phép: MIT license