我当前使用的是NativeBase的FAB,除了单击设置为按钮的徽章时,无法使其关闭FAB之外,它没有任何问题。我正在使用其中一个徽章创建输入并打开键盘。这部分没有问题,但我无法关闭FAB,当我尝试时,它只隐藏了除最后一个徽章以外的所有徽章。
FAB open after button was pressed 这是我组件的简化版本
const FabButton = (props) => {
const [active, setActive] = useState(false)
return (
<Fab
active={active}
direction="up"
containerStyle={{}}
position="bottomRight"
onPress={() => setActive(!active)}>
<Icon name="arrow-up" />
<Button onPress={props.replyToComment}>
<Icon name="md-code-working" />
</Button>
</Fab>
);
}
答案 0 :(得分:0)
Native Base是一个繁重的UI库。您可以将此库https://github.com/mastermoo/react-native-action-button用于浮动操作按钮,或者必须自定义本机基础FAB组件。
这里是示例:
import React, {
Component
} from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View
} from 'react-native';
import Icon from 'react-native-vector-icons/Ionicons';
import ActionButton from 'react-native-action-button';
class Basic extends Component {
render() {
return (
<View style={styles.container}>
<Text style={styles.welcome}>
Basic Example
</Text>
<ActionButton buttonColor="rgba(231,76,60,1)">
<ActionButton.Item buttonColor='#9b59b6' title="New Task" onPress={() => console.log("notes tapped!")}>
<Icon name="me-create" style={styles.actionButtonIcon} />
</ActionButton.Item>
<ActionButton.Item buttonColor='#3498db' title="Notifications" onPress={() => {}}>
<Icon name="me-notifications-off" style={styles.actionButtonIcon} />
</ActionButton.Item>
<ActionButton.Item buttonColor='#1abc9c' title="All Tasks" onPress={() => {}}>
<Icon name="md-done-all" style={styles.actionButtonIcon} />
</ActionButton.Item>
</ActionButton>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF'
},
welcome: {
fontSize: 20,
textAlign: 'center',
margin: 10
},
actionButtonIcon: {
fontSize: 20,
height: 22,
color: 'white',
}
});
AppRegistry.registerComponent('Basic', () => Basic);
答案 1 :(得分:0)
您可能想得太多。您需要做的就是单击按钮时更改活动状态:)
const FabButton = (props) => {
const [active, setActive] = useState(false)
return (
<Fab
active={active}
direction="up"
containerStyle={{}}
position="bottomRight"
onPress={() => setActive(!active)}>
<Button onPress={() => {
props.replyToComment
setActive(false) // <= add this
}}>
<Icon name="md-code-working" />
</Button>
</Fab>
);
}