GithubHelp home page GithubHelp logo

aliveing / react-native-keyboard-manager Goto Github PK

View Code? Open in Web Editor NEW

This project forked from douglasjunior/react-native-keyboard-manager

0.0 2.0 0.0 737 KB

Library that allows to prevent issues of keyboard sliding up and cover on React-Native iOS projects. ⚛

Home Page: https://www.npmjs.com/package/react-native-keyboard-manager

License: MIT License

JavaScript 0.65% Objective-C 99.35%

react-native-keyboard-manager's Introduction

React-Native Keyboard Manager

Licence MIT npm version npm downloads

This library allows to prevent issues of keyboard sliding up and cover on React-Native iOS projects ⚛. Thanks to awesome IQKeyboardManager ❤️.

This is only for iOS, Android no needed. For Android just add android:windowSoftInputMode="adjustResize" to your activity.

Screenshots

Enabled Disabled
Credits: IQKeyboardManager

Requirements

  • React Native >= 0.45.0
  • React >= 16.0.0-alpha.8
  • iOS >= 8.0

NOTES:

Install

  1. Install dependency package

    yarn add react-native-keyboard-manager

    Or

    npm i -S react-native-keyboard-manager
  2. Link the native project

    react-native link react-native-keyboard-manager
  3. (Optional) If you want to use Next/Previous buttons, link the IQKeyboardManager resources to your Xcode project.

    1. Open your Xcode project

    2. Got to folder your-project/node_modules/react-native-keyboard-manager/ios/IQKeyboardManager/

    3. Drag and drop the Resources folder to your project root. (If you already have Resources group, drag and drop the IQKeyboardManager.bundle)


    4. In your index.ios.js just call KeyboardManager.setToolbarPreviousNextButtonEnable(true);.

Use

It does not need any library setup to work, just install and go.

But, if you need some configuration, there are some options available. (with default values)

import KeyboardManager from 'react-native-keyboard-manager'

KeyboardManager.setEnable(true);
KeyboardManager.setEnableDebugging(true);
KeyboardManager.setKeyboardDistanceFromTextField(10);
KeyboardManager.setPreventShowingBottomBlankSpace(true);
KeyboardManager.setEnableAutoToolbar(true);
KeyboardManager.setToolbarDoneBarButtonItemText("Done");
KeyboardManager.setToolbarManageBehaviour(0);
KeyboardManager.setShouldToolbarUsesTextFieldTintColor(false);
KeyboardManager.setToolbarPreviousNextButtonEnable(false);
KeyboardManager.setShouldShowTextFieldPlaceholder(true);
KeyboardManager.setOverrideKeyboardAppearance(false);
KeyboardManager.setShouldResignOnTouchOutside(true);
KeyboardManager.resignFirstResponder();
KeyboardManager.isKeyboardShowing()
  .then((isShowing) => {
      // ...
  });

If you want to use Next/Previous buttons, enable it and follow install step 3.

KeyboardManager.setToolbarPreviousNextButtonEnable(true);

If you want to use Next/Previous buttons inside a Modal, you need to wrap the fields in a PreviousNextView.

class App extends Component {
  render() {
      return (
          <View ... >
              // others views
              <Modal ... >
                  // others views
                  <PreviousNextView style={...} >
                      // all TextInput
                  </PreviousNextView>
              </Modal>
          </View>
      )
  }
}

For more details, see the Sample Project and the official IQKeyboardManager documentation.

Known Issues

You can find IQKeyboardManager known issues list here.

Contribute

New features, bug fixes and improvements are welcome! For questions and suggestions use the issues.

Become a Patron! Donate

Licence

The MIT License (MIT)

Copyright (c) 2017 Douglas Nassif Roma Junior

See the full licence file.

IQKeyboardManager License

The MIT License (MIT)

Copyright (c) 2013-16 Iftekhar Qurashi

See the full IQKeyboardManager licence file.

react-native-keyboard-manager's People

Contributors

douglasjunior avatar aliveing avatar

Watchers

James Cloos 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.