Code Monkey home page Code Monkey logo

react-native-android-keyboard-adjust's Introduction

react-native-android-keyboard-adjust

Change the input mode for the Android keyboard in a React Native app.

If you are having issues with the default keyboard screen adjust modes and need an easy way to instantly switch them in your app. Quickly go from Pan to Resize to Nothing to get the screen displayed perfectly with the keyboard.

Adjust Nothing Example

adjust nothing keyboard down adjust nothing keyboard up

Adjust Resize Example

adjust resize keyboard down adjust resize keyboard up

Installation instructions for Android

Install the package

npm install --save react-native-android-keyboard-adjust

Update android/app/build.gradle

Add compile project(":react-native-android-keyboard-adjust") to dependencies:

dependencies {
    ...
    compile project(":react-native-android-keyboard-adjust")
    ...
 }

Update android/settings.gradle

...
include ':react-native-android-keyboard-adjust'
project(':react-native-android-keyboard-adjust').projectDir = new File(settingsDir, '../node_modules/react-native-android-keyboard-adjust/android')
...

Update MainActivity.java in your project

Import the package

import net.zubricky.AndroidKeyboardAdjust.AndroidKeyboardAdjustPackage;

Add the package to the getPackages method

@Override
protected List<ReactPackage> getPackages() {
    return Arrays.<ReactPackage>asList(
        ...
        new AndroidKeyboardAdjustPackage()
    );
}

Example

import AndroidKeyboardAdjust from 'react-native-android-keyboard-adjust';

AndroidKeyboardAdjust.setAdjustNothing();
AndroidKeyboardAdjust.setAdjustPan();
AndroidKeyboardAdjust.setAdjustResize();
AndroidKeyboardAdjust.setAdjustUnspecified();
AndroidKeyboardAdjust.setAlwaysVisible();
AndroidKeyboardAdjust.setAlwaysHidden();
AndroidKeyboardAdjust.setVisible();
AndroidKeyboardAdjust.setHidden();
AndroidKeyboardAdjust.setUnchanged();

react-native-android-keyboard-adjust's People

Contributors

doko-demo-doa avatar jr-k avatar kesha-antonov avatar liuchungui avatar skb1129 avatar zubricky avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

react-native-android-keyboard-adjust's Issues

setAdjustNothing - keyboardDidHide event not firing

I am setting to adjust nothing, then add event listener, but it doesnt seem to fire:

                            AndroidKeyboardAdjust.setAdjustNothing();
                            console.log('added keyboard hide listener');
                            Keyboard.addListener('keyboardDidHide', () => console.log('hid'));

The docs say that keyboardDidHide should fire when in adjustNothing mode - https://facebook.github.io/react-native/docs/keyboard.html#addlistener

Note that if you set android:windowSoftInputMode to adjustResize or adjustNothing, only keyboardDidShow and keyboardDidHide events will be available on Android.

Do you think this is an issue with this module? Or maybe issue in docs?

Doesnt work

Just to let you know I tried this today as I've got a situation where the Android keyboard is pushing up View's that sit at the bottom of the screen, whenever the keyboard is opened.

Followed all the instructions, did nothing. If it does actually work let me know would be nice to have control over this Android gotcha.

React Native 0.41.1

Change compile to implementation

Hi! 👋

Firstly, thanks for your work on this project! 🙂

Today I used patch-package to patch [email protected] for the project I'm working on.

Here is the diff that solved my problem:

diff --git a/node_modules/react-native-android-keyboard-adjust/android/build.gradle b/node_modules/react-native-android-keyboard-adjust/android/build.gradle
index bbcb06a..1d8fee9 100644
--- a/node_modules/react-native-android-keyboard-adjust/android/build.gradle
+++ b/node_modules/react-native-android-keyboard-adjust/android/build.gradle
@@ -35,5 +35,5 @@ repositories {
 }
 
 dependencies {
-  compile "com.facebook.react:react-native:+"
+  implementation "com.facebook.react:react-native:+"
 }

This issue body was partially generated by patch-package.

React native 65 and above

Would you please change the compile "com.facebook.react:react-native:+" to implementation "com.facebook.react:react-native:+" i android>build.gradle file as compile is not working on react native 65 and above

Issue in protected List, how to use this file please help me.

this is your file,
@OverRide
protected List getPackages() {
return Arrays.asList(
...
new AndroidKeyboardAdjustPackage()
);
}

this is my file, where I use,

package com.ymgrad.android;
import com.facebook.react.ReactActivity;
import android.os.Bundle;
import com.zoontek.rnbootsplash.RNBootSplash;

public class MainActivity extends ReactActivity {

@OverRide
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(null);
RNBootSplash.init(R.drawable.bootsplash, MainActivity.this);
}

@OverRide
protected String getMainComponentName() {
return "xyz";
}
}

require('NativeModules').AndroidKeyboardAdjust;

What do I need to call instead of 'nativemodules'? I get null.


import React, { useState } from 'react';
import { View, Text, StyleSheet, Pressable, ImageBackground, TextInput,NativeModules, AppRegistry  } from 'react-native';

import Logo from './component/Logo';

import bgImage from '../../images/login.jpg';
import logoImage from '../../images/logo_login.png';

import Icon from 'react-native-vector-icons/FontAwesome';

// android:windowSoftInputMode="adjustPan"




const Login = (props) => {



  const [setting, setSetting] = useState('nothing');

  const setKeyboardSetting = (setting) => {
    var AndroidKeyboardAdjust = NativeModules.AndroidKeyboardAdjust;
    setSetting(setting);

    switch (setting) {
        case 'nothing':
            AndroidKeyboardAdjust.setAdjustNothing();
            break;
        case 'pan':
            AndroidKeyboardAdjust.setAdjustPan();
            break;
        case 'resize':
            AndroidKeyboardAdjust.setAdjustResize();
            break;
        case 'unspecified':
            AndroidKeyboardAdjust.setAdjustUnspecified();
            break;
    }
}

return(
  <ImageBackground resizeMode='cover' source={bgImage} style={[styles.centeredView]}>
    <Icon name="rotate-left" onPress={()=>{props.navigation.navigate('Home')}} size={25} color="#376ba3" style={{position:'absolute', top:30, left:20}} />
    <View style={styles.formView}>
      <View style={styles.logoDiv} color={['white','black']}> 
        <Logo logoSource={logoImage} logoStyles={styles.logo} />
      </View> 
      <View style={styles.formMain}>
        <View style={styles.inputMain}>
          <Icon name="user" size={20} style={{padding: 10}} color={'#94dcf7'} />
          <TextInput color={'#94dcf7'} onPressIn={()=>{setKeyboardSetting('nothing')}} style={styles.textInput} keyboardType='email-address' placeholderTextColor={'#35d4f4'} placeholder="E-Mail" />
        </View>
        <View style={styles.inputMain}>
          <Icon name="user" size={20} style={{padding: 10}} color={'#94dcf7'}/>
          <TextInput placeholderTextColor='#35d4f4' onPressIn={()=>{setKeyboardSetting('pan')}} style={styles.textInput} secureTextEntry={true} placeholder="Parola" />
        </View>
        <View style={styles.buttonMain}>
          <Pressable
                  style={[styles.button]}
                  onPress={()=>{props.navigation.navigate('Home')}}
                >
              <Text style={styles.textStyle}>Giriş</Text>
          </Pressable>   
          <Pressable
                  style={{ width:'80%',
                  padding:5,
                  backgroundColor: "#fff"}}
                  onPress={()=>{props.navigation.navigate('Home')}}
                >
              <Text style={{  color: "#184575",
  textAlign: "center", fontSize:13, textDecorationLine:'underline'}}>Parolanı mı unuttun?</Text>
          </Pressable>          
        </View> 
      </View>
    </View>
    </ImageBackground>
);
};

const styles = StyleSheet.create({
  logoDiv:{
    position:'relative',
    top:-100,
    width:130,
    height:130,
    borderBottomLeftRadius:100,
    borderBottomRightRadius:100,
    borderTopLeftRadius:100,
    borderTopRightRadius:100,
    backgroundColor:'#adedfb'
  },
  centeredView: {
    width:'100%',
    height:'100%',
    justifyContent: "center",
    alignItems: "center"
  },
  formView:{
      width:'80%',
      height:'50%',
      borderColor:'rgb(180, 199, 232)',
      borderWidth:1,
      borderTopLeftRadius: 0,
      borderTopRightRadius: 0,
      borderBottomRightRadius: 0,
      borderBottomLeftRadius:0,  
      backgroundColor: "white",
      borderRadius: 20,
      padding: 35,
      alignItems: "center",
      shadowColor: "#000",
      shadowOffset: {
        width: 50,
        height: 2
      },
      shadowOpacity: 0.25,
      shadowRadius: 4,
      elevation: 5,
      position:'relative',
      top:-50
  },
  formMain:{
    width:'100%',
    height:'90%',
    top:90,
    alignItems:'center',
    position:'absolute'
  },
  textInput:{
    borderBottomWidth:1,
    borderBottomColor:'#35d4f4',
    flex: 1,
    paddingTop: 10,
    paddingRight: 10,
    paddingBottom: 10,
    paddingLeft: 0
},
inputMain:{
  flex: 0.2,
  flexDirection: 'row',
  justifyContent: 'center',
  alignItems: 'center',
  backgroundColor: '#fff'
},
buttonMain:{
  flex: 0.5,
  width:'100%',
  flexDirection: 'column',
  justifyContent: 'center',
  alignItems: 'center',
  backgroundColor: '#fff'
},
button: {
  width:'80%',
  elevation: 2,
  padding:5,
  backgroundColor: "#2196F3",
  marginBottom:10
},
textStyle: {
  color: "white",
  fontWeight: "bold",
  textAlign: "center"
}
  
  });



export default Login;

Build failing on RN 0.56

The following is the error and the stacktrace:

:react-native-android-keyboard-adjust:processReleaseResources FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':react-native-android-keyboard-adjust:processReleaseResources'.
> com.android.ide.common.process.ProcessException: Failed to execute aapt

* Try:
Run with --info or --debug option to get more log output.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':react-native-android-keyboard-adjust:processReleaseResources'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:98)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:68)
        at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88)
        at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:51)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
        at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.execute(DefaultTaskGraphExecuter.java:236)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.execute(DefaultTaskGraphExecuter.java:228)
        at org.gradle.internal.Transformers$4.transform(Transformers.java:169)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:61)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:228)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:215)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:77)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:58)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:32)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:113)
        at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
        at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23)
        at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43)
        at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)
        at org.gradle.initialization.DefaultGradleLauncher$RunTasksAction.execute(DefaultGradleLauncher.java:230)
        at org.gradle.initialization.DefaultGradleLauncher$RunTasksAction.execute(DefaultGradleLauncher.java:227)
        at org.gradle.internal.Transformers$4.transform(Transformers.java:169)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:56)
        at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:161)
        at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:112)
        at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:95)
        at org.gradle.launcher.exec.GradleBuildController.run(GradleBuildController.java:66)
        at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
        at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:41)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)
        at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:75)
        at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:49)
        at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:49)
        at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:31)
        at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
        at org.gradle.util.Swapper.swap(Swapper.java:38)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
        at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
        at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:46)
Caused by: java.lang.RuntimeException: com.android.ide.common.process.ProcessException: Failed to execute aapt
        at com.android.build.gradle.tasks.ProcessAndroidResources.doFullTaskAction(ProcessAndroidResources.java:201)
        at com.android.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.java:82)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
        at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$IncrementalTaskAction.doExecute(DefaultTaskClassInfoStore.java:163)
        at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:134)
        at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:123)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.execute(ExecuteActionsTaskExecuter.java:115)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.execute(ExecuteActionsTaskExecuter.java:109)
        at org.gradle.internal.Transformers$4.transform(Transformers.java:169)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:56)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:109)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:90)
        ... 70 more
Caused by: com.android.ide.common.process.ProcessException: Failed to execute aapt
        at com.android.builder.core.AndroidBuilder.processResources(AndroidBuilder.java:867)
        at com.android.build.gradle.tasks.ProcessAndroidResources.doFullTaskAction(ProcessAndroidResources.java:194)
        ... 82 more
Caused by: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: Error while executing process /usr/local/share/android-sdk/build-tools/25.0.3/aapt with arguments {package -f --no-crunch -I /usr/local/share/android-sdk/platforms/android-25/android.jar -M /Users/dexter/IdeaProjects/RNApp/node_modules/react-native-android-keyboard-adjust/android/build/intermediates/manifests/aapt/release/AndroidManifest.xml -S /Users/dexter/IdeaProjects/RNApp/node_modules/react-native-android-keyboard-adjust/android/build/intermediates/res/merged/release -m -J /Users/dexter/IdeaProjects/RNApp/node_modules/react-native-android-keyboard-adjust/android/build/generated/source/r/release --custom-package net.zubricky.AndroidKeyboardAdjust --non-constant-id -0 apk --output-text-symbols /Users/dexter/IdeaProjects/RNApp/node_modules/react-native-android-keyboard-adjust/android/build/intermediates/bundles/default --no-version-vectors}
        at com.google.common.util.concurrent.AbstractFuture$Sync.getValue(AbstractFuture.java:299)
        at com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:286)
        at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:116)
        at com.android.builder.core.AndroidBuilder.processResources(AndroidBuilder.java:865)
        ... 83 more
Caused by: com.android.ide.common.process.ProcessException: Error while executing process /usr/local/share/android-sdk/build-tools/25.0.3/aapt with arguments {package -f --no-crunch -I /usr/local/share/android-sdk/platforms/android-25/android.jar -M /Users/dexter/IdeaProjects/RNApp/node_modules/react-native-android-keyboard-adjust/android/build/intermediates/manifests/aapt/release/AndroidManifest.xml -S /Users/dexter/IdeaProjects/RNApp/node_modules/react-native-android-keyboard-adjust/android/build/intermediates/res/merged/release -m -J /Users/dexter/IdeaProjects/RNApp/node_modules/react-native-android-keyboard-adjust/android/build/generated/source/r/release --custom-package net.zubricky.AndroidKeyboardAdjust --non-constant-id -0 apk --output-text-symbols /Users/dexter/IdeaProjects/RNApp/node_modules/react-native-android-keyboard-adjust/android/build/intermediates/bundles/default --no-version-vectors}
        at com.android.build.gradle.internal.process.GradleProcessResult.buildProcessException(GradleProcessResult.java:74)
        at com.android.build.gradle.internal.process.GradleProcessResult.assertNormalExitValue(GradleProcessResult.java:49)
        at com.android.builder.internal.aapt.AbstractProcessExecutionAapt$1.onSuccess(AbstractProcessExecutionAapt.java:78)
        at com.android.builder.internal.aapt.AbstractProcessExecutionAapt$1.onSuccess(AbstractProcessExecutionAapt.java:74)
        at com.google.common.util.concurrent.Futures$6.run(Futures.java:1319)
        at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:457)
        at com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156)
        at com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:145)
        at com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:185)
        at com.google.common.util.concurrent.SettableFuture.set(SettableFuture.java:53)
        at com.android.build.gradle.internal.process.GradleProcessExecutor$1.run(GradleProcessExecutor.java:60)
Caused by: org.gradle.process.internal.ExecException: Process 'command '/usr/local/share/android-sdk/build-tools/25.0.3/aapt'' finished with non-zero exit value 1
        at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:369)
        at com.android.build.gradle.internal.process.GradleProcessResult.assertNormalExitValue(GradleProcessResult.java:47)
        ... 9 more


BUILD FAILED


Documentation needs updating

Hi
The documentation is not updated with the latest RN version.
there is no getPackages() method in MainActivity.java

Thanks for this awesome package

Suggestion: Implement wrapper to avoid crashes on other platforms

I just added the following code in my RN app that runs on iOS and Android:

AndroidKeyboardAdjust.setAdjustPan();

But to make it work on iOS I have to check if AndroidKeyboardAdjust

if (AndroidKeyboardAdjust) {
    AndroidKeyboardAdjust.setAdjustPan();
}

Would be nice to get this wrapped so that

AndroidKeyboardAdjust.setAdjustPan();

just does nothing (without crashing) on iOS.

Example request

Hi @zubricky, Thanks for this awesome library. It would be more helpful if you add some working example or GIF to show the result

Thanks in Advance

Superbly awesome!!! Screenshots of other modes please

Hi there! Thank you soooo much for this absolutely necessary module!!! I struggled with keeping my bottom bar on the bottom for so long and had no idea I needed to do a native change. Then when I realized I needed a native change, I only needed it a one shot, so that when I did need the default mode I can undo it.

May you please add screenshots to the readme of the other modes. I'm still learning the modes and the screenshots help immensely! I would take them myself but i dont really know what im screenshoting (what effect im looking for).

Not working on react-native Modal components

I have a Modal component (react-native library) with a couple of TextInputs on it.

I set this Modal property:
onShow={() => this.setAndroidAdjustNothing()}

Function definition is:

setAndroidAdjustNothing(){
    if(AndroidKeyboardAdjust){
      alert('adjusted');
      AndroidKeyboardAdjust.setAdjustNothing();
    }
  }

I can see the Alert show up when the Modal pops up, so it's being called.
However when I click on the inputs, the current view is resized to fit all components into the remaining space.
Could it be that it's targeting the Main activity, and not the actual Modal activity? Is there a way to do this?

Could not find com.android.tools:common:25.2.3

Description

I tried to build my react-native application for android.
AndroidStudio tell me that common:25.2.3 is undefined in jcenter repository.

How to repeat issue and example

Create a new react application (version should be 0.57.7).
Install and link react-native-android-keyboard-adjust.
Open AndroidStudio, ask it to sync project file with gradle files.

Additional Information

React Native version: 0.57.7
Platform: Android
Development Operating System: MacOS
Dev tools: Android Studio v3.2.1

Build failed

Hello
I follow all the instructions accordingly but the build has failed

react-native 0.47

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.