я могу заставить NativeBase FAB закрывать onPress при нажатии на значок? - PullRequest
0 голосов
/ 08 июля 2019

В настоящее время я использую FAB NativeBase, и он работает без проблем, за исключением того, что когда я нажимаю на значок, который я установил для кнопки, я не могу заставить его закрыть FAB. Я использую один из значков, чтобы создать вход и открыть клавиатуру. Эта часть работает без проблем, но я не могу заставить ее закрыть FAB, и когда я пытаюсь, она скрывает только все значки, кроме последнего.

FAB открывается после нажатия кнопки Вот упрощенная версия моего компонента

    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>
    );
}

1 Ответ

0 голосов
/ 08 июля 2019

Native Base - тяжелая библиотека пользовательского интерфейса. Вы можете использовать эту библиотеку 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);
...