I have a React Native Popup Menu implemented as follows:
import React, { Component } from 'react';
import { Text } from 'react-native';
import { Icon, Divider } from 'react-native-elements';
import {
Menu,
MenuTrigger,
MenuOptions,
MenuOption
} from 'react-native-popup-menu';
import { connect } from 'react-redux';
import firebase from 'firebase';
import { STATUS_BAR_HEIGHT } from '../constants';
class PopUpMenu extends Component {
render() {
const { menuStyle, menuOptionsStyle, menuTriggerStyle } = styles;
return (
<Menu style={menuStyle}>
<MenuTrigger style={menuTriggerStyle}>
<Icon
name="menu"
color="white"
size={30}
/>
</MenuTrigger>
<MenuOptions style={menuOptionsStyle}>
<MenuOption>
<Text>{this.props.user.email}</Text>
</MenuOption>
<MenuOption>
<Divider />
</MenuOption>
<MenuOption text="Log Out" onSelect={() => this.signOutUser()} />
</MenuOptions>
</Menu>
);
}
}
const styles = {
menuStyle: {
marginTop: STATUS_BAR_HEIGHT,
marginRight: 12
},
menuTriggerStyle: {},
menuOptionsStyle: {}
};
Now currently it looks like this closed:
And this opened:
I would like to have the opened box move down below the trigger button while still keeping the trigger in the same place. How can I accomplish that with styles?
To create a menu we will use material design library i.e. react-native-paper. Menu contains a list of options that appear temporarily. In our project, we will create a button and on click of that button, menu will appear.
In your components folder, create a file called Modal. tsx and add the following code: import React from "react"; import { StyleSheet, View, Text, Button } from "react-native"; import RNModal from "react-native-modal"; type ModalProps = { isVisible: boolean; children: React.
You can achieve that by passing optionsContainerStyle
props to MenuOptions component, not style props.
Something like this.
<MenuOptions optionsContainerStyle={{ marginTop: 40 }}>
...
</MenuOptions>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With