$ npm install react-native-android-pip --save
Include in your AndroidManifest.xml in MainActivity activity:
android:resizeableActivity="true" android:supportsPictureInPicture="true" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|smallestScreenSize|orientation"
# RN >= 0.60
No action needed
# RN < 0.60
react-native link react-native-android-pip
android/app/src/main/java/[...]/MainActivity.java
import com.reactlibrary.RNAndroidPipPackage;
to the imports at the top of the filenew RNAndroidPipPackage()
to the list returned by the getPackages()
methodandroid/settings.gradle
:
include ':react-native-android-pip'
project(':react-native-android-pip').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-android-pip/android')
android/app/build.gradle
:
implements project(':react-native-android-pip')
For android sdk version 23 and below, this method call will be ignored as PIP support is not available
import AndroidPip from 'react-native-android-pip';
// Enter Pip mode
AndroidPip.enterPictureInPictureMode()
//Configure aspect ratio, works only on SDK version 26 and above
AndroidPip.configureAspectRatio(width, height) // Example: AndroidPip.configureAspectRatio(2, 4)
// When enabled, PIP mode will be automatically entered when app is unfocused( User presses home, menu button etc)
AndroidPip.enableAutoPipSwitch()
AndroidPip.disableAutoPipSwitch()