Coder Social home page Coder Social logo

spoeck / react-native-action-button Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mastermoo/react-native-action-button

0.0 2.0 0.0 329 KB

customizable multi-action-button component for react-native

License: MIT License

JavaScript 71.94% Python 5.61% Java 3.74% Objective-C 18.70%

react-native-action-button's Introduction

react-native-action-button

customizable multi-action-button component for react-native

react-native-action-button demo react-native-action-button demo react-native-action-button demo react-native-action-button demo

Known Issues

  • Doesn't Work While Android Debugging. See issue #79.

Installation

npm i react-native-action-button --save

Usage

First, require it from your app's JavaScript files with:

import ActionButton from 'react-native-action-button';
ActionButton

ActionButton component is the main component which wraps everything and provides a couple of props (see Config below).

ActionButton.Item

ActionButton.Item specifies an Action Button. You have to include at least 1 ActionButton.Item.

Example

The following Basic example can be found in example/Basic.

import React, { Component } from 'react';
import { StyleSheet, View } from 'react-native';
import ActionButton from 'react-native-action-button';
import Icon from 'react-native-vector-icons/Ionicons';


class App extends Component {

  render() {
    return (
      <View style={{flex:1, backgroundColor: '#f3f3f3'}}>
        {/* Rest of the app comes ABOVE the action button component !*/}
        <ActionButton buttonColor="rgba(231,76,60,1)">
          <ActionButton.Item buttonColor='#9b59b6' title="New Task" onPress={() => console.log("notes tapped!")}>
            <Icon name="md-create" style={styles.actionButtonIcon} />
          </ActionButton.Item>
          <ActionButton.Item buttonColor='#3498db' title="Notifications" onPress={() => {}}>
            <Icon name="md-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({
  actionButtonIcon: {
    fontSize: 20,
    height: 22,
    color: 'white',
  },
});

This will create a floating Button in the bottom right corner with 3 action buttons. Also this example uses react-native-vector-icons for the button Icons.

FAB Example

<ActionButton
  buttonColor="rgba(231,76,60,1)"
  onPress={() => { console.log("hi")}}
/>

Show/hide the FAB on scroll

Take a look at this gist for showing and hiding the floating action button depending on the scroll direction.

Configuration

ActionButton:
Property Type Default Description
resetToken any null use this to reset the internal component state (expand/collapse) in a re-render cycle. Synchronize the component state.
active boolean false action buttons visible or not
autoInactive boolean true Auto hide ActionButtons when ActionButton.Item is pressed.
hideShadow boolean false use this to hide the default elevation and boxShadow
position string "right" / "center" one of: left center and right
bgColor string "transparent" background color when ActionButtons are visible
buttonColor string "rgba(0,0,0,1)" background color of the +Button (must be rgba value!)
spacing number 20 spacing between the ActionButton.Items
offsetX number 30 offset from the left/right side of the screen
offsetY number 30 offset from the bottom/top of the screen
btnOutRange string props.buttonColor button background color to animate to
outRangeScale number 1 changes size of button during animation
onPress function null fires, when ActionButton is tapped
onPressIn function null fires, before ActionButton is released
onPressOut function null fires, after ActionButton is released
onLongPress function null fires, when ActionButton is long pressed
icon Component + Custom component for ActionButton Icon
backdrop Component false Custom component for use as Backdrop (i.e. BlurView, VibrancyView)
degrees number 135 degrees to rotate icon
buttonText string + use this to set a different text on the button
buttonTextStyle style null use this to set the textstyle of the button's text
onReset function null use this to set the callback that will be called after the button reset's it's items
verticalOrientation string "up" direction action buttons should expand. One of: up or down
backgroundTappable boolean false make background tappable in active state of ActionButton
activeOpacity number 0.85 activeOpacity props of TouchableOpacity
shadowStyle style null The custom shadow style you want to pass in the action button
useNativeFeedback boolean true Android: Whether to use a TouchableNativeFeedback
fixNativeFeedbackRadius boolean false Android: Activate this to fix TouchableNativeFeedback Ripple UI problems
nativeFeedbackRippleColor string 'rgba(255,255,255,0.75)' Android: Pass a color to the Ripple Effect of a TouchableNativeFeedback
ActionButton.Item:
Property Type Default Description
title string undefined the title shown next to the button. When undefined the title is not hidden
onPress func null required function, triggers when a button is tapped
buttonColor string same as + button background color of the Button
titleColor string "#444" color of title, removed in v2.5. use textStyle instead
titleBgColor string "white" background color of title, removed in v2.5. use textStyle instead
textContainerStyle style null use this to set the textstyle of the button's item text container
textStyle style null use this to set the textstyle of the button's item text
spaceBetween number 15 use this to set the space between the Button and the text container
activeOpacity number 0.85 activeOpacity props of TouchableOpacity
hideLabelShadow boolean same as hideShadow use this to hide the button's label default elevation and boxShadow
shadowStyle style null The custom shadow style you want to pass in the action button item
useNativeFeedback boolean true Android: Whether to use a TouchableNativeFeedback
fixNativeFeedbackRadius boolean false Android: Activate this to fix TouchableNativeFeedback Ripple UI problems
nativeFeedbackRippleColor string 'rgba(255,255,255,0.75)' Android: Pass a color to the Ripple Effect of a TouchableNativeFeedback

react-native-action-button's People

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.