diff --git a/.gitignore b/.gitignore
index ec720bc..236fc3d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,6 +13,15 @@ build/
!default.mode2v3
*.perspectivev3
!default.perspectivev3
+xcuserdata/
+
+## Other
+*.xcscmblueprint
+
+*.log
+
+.vscode/
+
xcuserdata
*.xccheckout
*.moved-aside
@@ -57,4 +66,4 @@ buck-out/
*.jsbundle
# CocoaPods
-/ios/Pods/
+/ios/Pods/
\ No newline at end of file
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index c484896..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 石破天惊
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/android/app/build.gradle b/android/app/build.gradle
index c820c96..78f0e19 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -186,7 +186,7 @@ android {
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
//noinspection GradleDynamicVersion
- implementation "com.facebook.react:react-native:+" // From node_modules
+ implementation "com.facebook.react:react-native:0.65.1" // From node_modules
api project(':lottie-react-native')
api project(':react-native-spring-scroll-view')
diff --git a/android/build.gradle b/android/build.gradle
index 6977fd4..6bdb271 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -1,38 +1,53 @@
-// Top-level build file where you can add configuration options common to all sub-projects/modules.
-
buildscript {
- ext {
- buildToolsVersion = "29.0.3"
- minSdkVersion = 21
- compileSdkVersion = 29
- targetSdkVersion = 29
- ndkVersion = "20.1.5948944"
- }
repositories {
google()
jcenter()
+ mavenCentral()
+ maven { url 'http://nexus.skillz.com/content/groups/public' }
}
+
dependencies {
- classpath('com.android.tools.build:gradle:4.1.1')
- // NOTE: Do not place your application dependencies here; they belong
- // in the individual module build.gradle files
+ classpath 'com.android.tools.build:gradle:3.6.4'
+ classpath 'de.undercouch:gradle-download-task:3.4.3'
+ classpath 'com.google.gms:google-services:4.3.0'
+ classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
}
}
-allprojects {
- repositories {
- mavenLocal()
- maven {
- // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
- url("$rootDir/../node_modules/react-native/android")
- }
- maven {
- // Android JSC is installed from npm
- url("$rootDir/../node_modules/jsc-android/dist")
- }
+apply plugin: 'com.android.library'
- google()
- jcenter()
- maven { url 'https://www.jitpack.io' }
+android {
+ compileSdkVersion 29
+ buildToolsVersion '29.0.0'
+
+ defaultConfig {
+ minSdkVersion 19
+ targetSdkVersion 29
+ versionCode 1
+ versionName VERSION_NAME
+ }
+ lintOptions {
+ abortOnError false
}
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
+}
+
+repositories {
+ google()
+ mavenCentral()
+ maven {
+ url 'http://nexus.skillz.com/content/groups/public'
+ }
+
+ jcenter()
+ flatDir { dirs 'libs', '../../node_modules' }
+}
+
+dependencies {
+ implementation 'com.facebook.react:react-native:0.65.1' // Skillz' react-native-v8 aar
}
+
+apply from: 'release.gradle'
\ No newline at end of file
diff --git a/android/gradle.properties b/android/gradle.properties
index d21d03f..f62489b 100644
--- a/android/gradle.properties
+++ b/android/gradle.properties
@@ -26,3 +26,11 @@ android.enableJetifier=true
# Version of flipper SDK to use with React Native
FLIPPER_VERSION=0.75.1
+
+VERSION_NAME=3.0.2-skillz
+MOCKITO_CORE_VERSION=1.+
+POWERMOCK_VERSION=1.6.2
+GROUP=com.bolan9999
+POM_NAME=ReactNativeSpringScrollview
+POM_ARTIFACT_ID=react-native-spring-scrollview-android
+POM_PACKAGING=aar
\ No newline at end of file
diff --git a/android/release.gradle b/android/release.gradle
new file mode 100644
index 0000000..98a84da
--- /dev/null
+++ b/android/release.gradle
@@ -0,0 +1,100 @@
+apply plugin: 'com.github.dcendents.android-maven'
+apply plugin: 'signing'
+
+def configureReactNativePom(def pom) {
+ pom.artifactId = POM_ARTIFACT_ID
+ pom.name = GROUP
+ pom.packaging = POM_PACKAGING
+ pom.version = VERSION_NAME
+ pom.groupId = "com.react-native-spring-scrollview"
+ archivesBaseName='react-native-spring-scrollview-android'
+
+ pom.project {
+ name POM_NAME
+
+ description 'A high performance cross-platform native bounces ScrollView for React Native.'
+ url 'https://github.com/skillz/react-native-spring-scrollview'
+
+ scm {
+ url 'https://github.com/skillz/react-native-spring-scrollview.git'
+ connection 'scm:git:https://github.com/skillz/react-native-spring-scrollview.git'
+ developerConnection 'scm:git:git@github.com/skillz/react-native-spring-scrollview.git'
+ }
+
+ licenses {
+ license {
+ name 'Proprietary'
+ distribution 'repo'
+ }
+ }
+
+ developers {
+ developer {
+ id 'skillz'
+ name 'Skillz'
+ }
+ }
+ }
+}
+
+afterEvaluate { project ->
+
+ task androidSourcesJar(type: Jar) {
+ classifier = 'sources'
+ from android.sourceSets.main.java.srcDirs
+ include '**/*.java'
+ }
+
+ task renameArchive(type: Copy) {
+ dependsOn 'assembleRelease'
+ from('build/outputs/aar')
+ into('build/outputs/aar')
+ include('android-release.aar')
+ rename ('android-release.aar',
+ 'react-native-spring-scroll-view-release.aar')
+ }
+
+ android.libraryVariants.all { variant ->
+ def name = variant.name.capitalize()
+ task "jar${name}"(type: Jar, dependsOn: variant.javaCompile) {
+ from variant.javaCompile.destinationDir
+ }
+ }
+
+ version = VERSION_NAME
+ group = GROUP
+
+ signing {
+ required { gradle.taskGraph.hasTask('uploadArchives') }
+
+ sign configurations.archives
+ }
+
+ uploadArchives {
+ configuration = configurations.archives
+
+ repositories.mavenDeployer {
+ beforeDeployment {
+ MavenDeployment deployment -> signing.signPom(deployment)
+ }
+
+ repository(url: 'http://nexus.skillz.com/content/repositories/thirdparty/') {
+ authentication(userName: "garbage", password: "garbage")
+ }
+
+ configureReactNativePom pom
+ }
+ }
+
+ task installArchives(type: Upload) {
+ configuration = configurations.archives
+
+ repositories.mavenDeployer {
+
+ repository url: "file://${projectDir}/../android"
+
+ configureReactNativePom pom
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/android/settings.gradle b/android/settings.gradle
index 88cc02b..c7d5692 100644
--- a/android/settings.gradle
+++ b/android/settings.gradle
@@ -1,9 +1,4 @@
-rootProject.name = 'SSVExample'
+rootProject.name = 'react-native-spring-scroll-view'
-include ':lottie-react-native'
-project(':lottie-react-native').projectDir = new File(rootProject.projectDir, '../node_modules/lottie-react-native/src/android')
include ':react-native-spring-scroll-view'
-project(':react-native-spring-scroll-view').projectDir = new File(rootProject.projectDir, '../src/android')
-
-apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
-include ':app'
+project(':react-native-spring-scroll-view').projectDir = new File(rootProject.projectDir, '../src/android')
\ No newline at end of file
diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..f54f77e
--- /dev/null
+++ b/android/src/main/AndroidManifest.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/android/src/main/java/com/bolan9999/DecelerateAnimation.java b/android/src/main/java/com/bolan9999/DecelerateAnimation.java
similarity index 100%
rename from src/android/src/main/java/com/bolan9999/DecelerateAnimation.java
rename to android/src/main/java/com/bolan9999/DecelerateAnimation.java
diff --git a/src/android/src/main/java/com/bolan9999/ScrollEvent.java b/android/src/main/java/com/bolan9999/ScrollEvent.java
similarity index 100%
rename from src/android/src/main/java/com/bolan9999/ScrollEvent.java
rename to android/src/main/java/com/bolan9999/ScrollEvent.java
diff --git a/src/android/src/main/java/com/bolan9999/SpringScrollView.java b/android/src/main/java/com/bolan9999/SpringScrollView.java
similarity index 99%
rename from src/android/src/main/java/com/bolan9999/SpringScrollView.java
rename to android/src/main/java/com/bolan9999/SpringScrollView.java
index 41879dd..706e8b0 100644
--- a/src/android/src/main/java/com/bolan9999/SpringScrollView.java
+++ b/android/src/main/java/com/bolan9999/SpringScrollView.java
@@ -10,6 +10,7 @@
import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.ReactContext;
+import com.facebook.react.bridge.ReadableMap;
import com.facebook.react.bridge.WritableMap;
import com.facebook.react.uimanager.PixelUtil;
import com.facebook.react.uimanager.UIManagerModule;
@@ -369,7 +370,7 @@ public void setContentOffset(float x, float y) {
WritableMap contentOffsetMap = Arguments.createMap();
contentOffsetMap.putDouble("x", PixelUtil.toDIPFromPixel(contentOffset.x));
contentOffsetMap.putDouble("y", PixelUtil.toDIPFromPixel(contentOffset.y));
- event.putMap("contentOffset", contentOffsetMap);
+ event.putMap("contentOffset", (ReadableMap)contentOffsetMap);
event.putString("refreshStatus", refreshStatus);
event.putString("loadingStatus", loadingStatus);
sendOnScrollEvent(event);
diff --git a/src/android/src/main/java/com/bolan9999/SpringScrollViewManager.java b/android/src/main/java/com/bolan9999/SpringScrollViewManager.java
similarity index 100%
rename from src/android/src/main/java/com/bolan9999/SpringScrollViewManager.java
rename to android/src/main/java/com/bolan9999/SpringScrollViewManager.java
diff --git a/src/android/src/main/java/com/bolan9999/SpringScrollViewPackage.java b/android/src/main/java/com/bolan9999/SpringScrollViewPackage.java
similarity index 100%
rename from src/android/src/main/java/com/bolan9999/SpringScrollViewPackage.java
rename to android/src/main/java/com/bolan9999/SpringScrollViewPackage.java
diff --git a/src/android/src/main/java/com/bolan9999/Types.java b/android/src/main/java/com/bolan9999/Types.java
similarity index 100%
rename from src/android/src/main/java/com/bolan9999/Types.java
rename to android/src/main/java/com/bolan9999/Types.java
diff --git a/docs/.nojekyll b/docs/.nojekyll
deleted file mode 100644
index e69de29..0000000
diff --git a/docs/_coverpage.md b/docs/_coverpage.md
deleted file mode 100644
index 1a23457..0000000
--- a/docs/_coverpage.md
+++ /dev/null
@@ -1,8 +0,0 @@
-# React Native Spring Scrollview
-
-> A cross-platform bounce ScrollView for React Native.
-
-[github](https://github.com/bolan9999/react-native-spring-scrollview)
-[Get Started](en/)
-[中文文档](zh-cn/)
-
diff --git a/docs/_navbar.md b/docs/_navbar.md
deleted file mode 100644
index de18c09..0000000
--- a/docs/_navbar.md
+++ /dev/null
@@ -1,3 +0,0 @@
-
-* [English](/en/)
-* [简体中文](/zh-cn/)
diff --git a/docs/en/V2/BasicContent.md b/docs/en/V2/BasicContent.md
deleted file mode 100644
index 62b3778..0000000
--- a/docs/en/V2/BasicContent.md
+++ /dev/null
@@ -1,16 +0,0 @@
-### Overview
-
-SpringScrollView is a high performance cross-platform native bounces ScrollView for React Native.(iOS & Android). It is same as the ScrollView from React-Native, SpringScrollView simply renders all its react child components at once. That makes it very easy to understand and use. If you need a high-performance reused large list component , maybe [LargeList](https://bolan9999.github.io/react-native-largelist/#/) is a good choice.
-
-Keep in mind that SpringScrollViews must have a bounded height in order to work, since they contain unbounded-height children into a bounded container (via a scroll interaction). In order to bound the height of a ScrollView, either set the height of the view directly (discouraged) or make sure all parent views have bounded height. SpringScrollViews default have a `{flex:1}` style, please be sure its parent has abounded height.
-
-### style & contentStyle
-
-As the ScrollView in React-Native, SpringScrollView consists of a wrapper and a content view. The `style` configure the wrapper's style and the `contentStyle` configure the content view's style. The style prop has a `{flex:1}` and the `contentStyle` has a `{flexDirection:"column",justifyContent:"stretch"}` default property. It is different from the official ScrollView. And you can override them. Note that `contentStyle` should not contain a `transform` props.
-
-Props | Type | Default | description
----- | ------ | --------- | --------
-style | Animated.[ViewStyle](http://facebook.github.io/react-native/docs/view-style-props) | {flex:1} | The wrapper style of the SpringScrollView. It supports Animated style.
-contentStyle | [ViewStyle](http://facebook.github.io/react-native/docs/view-style-props) | - | The content view style of the SpringScrollView.
-
-**Precautions:** SpringScrollViews support both horizontal and vertical directions scroll after Version 2 . If the content view is wider than the wrapper, horizontal scroll and bounces will be enabled. ContentStyle supports `{width:"200%"}` or `width:1000` style and so on.
diff --git a/docs/en/V2/BasicControl.md b/docs/en/V2/BasicControl.md
deleted file mode 100644
index c8a3e7f..0000000
--- a/docs/en/V2/BasicControl.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# Basic Props
-
-
-Props | Type | Default | description
----- | ------ | --------- | --------
-...ViewProps | - | | All props of [View](http://facebook.github.io/react-native/docs/view)
-bounces | boolean | true | Bounces if the content offset is out of the content view. It won't be bounces on the horizontal direction if the content view is not wider than the wrapper view although bounces is true. But it will on the vertical direction.
-contentStyle | ViewStyle | undefined | The style of the content view.
-scrollEnabled | boolean | true | scrollEnabled
-directionalLockEnabled | boolean | false | When true, the SpringScrollView will try to lock to only vertical or horizontal scrolling while dragging.
-initialContentOffset | {x:number, y:number} | undefined | initial content offset. Only works when initiation.
-showsVerticalScrollIndicator | boolean | true | showsVerticalScrollIndicator
-showsHorizontalScrollIndicator | boolean | true | showsHorizontalScrollIndicator
-tapToHideKeyboard | boolean | true | tapToHideKeyboard
-onSizeChange | ({width:number,height:number})=>any | undefined | The callback when the wrapper view size changed.
-onContentSizeChange | ({width:number,height:number})=>any | undefined | The callback when the content view size changed.
-inverted | boolean | false | inverted. It is a service for LargeList.
-
diff --git a/docs/en/V2/CustomLoading.md b/docs/en/V2/CustomLoading.md
deleted file mode 100644
index 91d0ea5..0000000
--- a/docs/en/V2/CustomLoading.md
+++ /dev/null
@@ -1,145 +0,0 @@
-# Customize loading
-
-Understand the refreshing status before customizing refreshing:
-
-* "waiting": The content view is not out of the bottom yet.
-* "dragging": The content view is out of the bottom but not too more to load.
-* "draggingEnough": It is enough to load,but the finger has not touched up, and will load more data at once if touching up.
-* "draggingCancel": Drag back after the `draggingEnough` status.
-* "loading": Loading data.
-* "rebound": The loading has been completed and it is rebounding.
-* "allLoaded": Whether the data is all loaded.
-
-### Customize
-
-#### Import
-```$js
-import { LoadingFooter } from "react-native-spring-scrollview/LoadingFooter";
-```
-
-#### Extends `LoadingFooter`
-```$js
-class MyFooter extends LoadingFooter{}
-```
-
-#### Overwrite `render`
-```$js
-render() {
- return {this.state.status}
-}
-```
-
-LoadingFooter has these props and states extended from its parent. You can use it directly.
-* this.props.maxHeight: The type is `number`, it is the height for the loading footer.
-* this.props.offset: The type is `Animated.Value`, Animated value for contentOffset.y of the SpringScrollView
-* this.props.bottomOffset, The type is `number`,The max contentOffset of the SpringScrollView, You can use it to make interpolate animation.
-* this.state.status: The type is `FooterStatus`, it is the status of the loading footer.
-```$js
-export type FooterStatus =
- | "waiting"
- | "dragging"
- | "draggingEnough"
- | "draggingCancel"
- | "releaseRebound"
- | "loading"
- | "rebound"
- | "allLoaded";
-```
-
-#### Customize the height of the loading footer
-Overwrite the static var `height` to change the height of the loading footer.
-```$js
-class MyFooter extends LoadingFooter{
- static height:number = 50;
-}
-```
-
-#### Select the loading style
-
-Overwrite the static var `style` to change the style of the loading footer.
-```
-class MyFooter extends LoadingFooter{
- static style:string = "stickyContent";
-}
-```
-
-SpringScrollView supports 3 kinds of style for loading footer,default is `stickyContent` :
-
-style | preview
----- | ------
-"bottoming" | 
-"stickyScrollView" | 
-"stickyContent" | 
-
-#### Apply your customize loading footer to SpringScrollView
-```$js
-
-```
-
-Fully example is here [NormalFooter](https://github.com/bolan9999/react-native-spring-scrollview/blob/master/src/LoadingFooter.js)
-
-#### Native interpolate animation
-
-this.props.offset: Native driver animated value for contentOffset.y of the SpringScrollView, you can use it to make a native animation.
-
-Example:
-
-```$js
-
-```
-
-Fully example is here [NormalFooter](https://github.com/bolan9999/react-native-spring-scrollview/blob/master/src/NormalFooter.js)
-
-#### Lottie animation support
-
-```
-export class CommonLottieFooter extends RefreshHeader {
- static height: number = 100;
-
- render() {
- if (this.state.status === "allLoaded") return null;
- const { offset, bottomOffset } = this.props;
- let progress = offset.interpolate({
- inputRange: [
- bottomOffset + 50,
- bottomOffset + 500
- ],
- outputRange: [0, 1]
- });
- if (this.state.status === "loading") {
- progress = undefined;
- }
- return (
-
-
-
- );
- }
-}
-```
-Full lottie animation example is here [CommonLottieFooter](https://github.com/bolan9999/react-native-spring-scrollview/blob/master/src/Customize/CommonLottieFooter.js)
-
-### Contribute your awesome loading footer
-
-Fork [react-native-spring-scrollview](https://github.com/bolan9999/react-native-spring-scrollview), make awesome loading footer in the [Customize](https://github.com/bolan9999/react-native-spring-scrollview/tree/master/src/Customize) dir, and pull a request to me.
diff --git a/docs/en/V2/CustomRefresh.md b/docs/en/V2/CustomRefresh.md
deleted file mode 100644
index c5a2309..0000000
--- a/docs/en/V2/CustomRefresh.md
+++ /dev/null
@@ -1,135 +0,0 @@
-# Customize refreshing
-
-Understand the refreshing status before customizing refreshing:
-
-* `waiting`: The content view is not out of the top yet.
-* `pulling`: The content view is out of the top but not too more to refresh.
-* `pullingEnough`: It is enough to refresh,but the finger has not touched up, and will refresh at once if touching up.
-* `pullingCancel`: Drag back after the `pullingEnough` status.
-* `refreshing`: Refreshing
-* `rebound`: The refreshing has been completed and it is rebounding.
-
-### Customize
-
-#### Import
-```$js
-import { RefreshHeader } from "react-native-spring-scrollview/RefreshHeader";
-```
-
-#### Extends `RefreshHeader`
-```$js
-class MyHeader extends RefreshHeader{}
-```
-
-#### Overwrite `render`
-```$js
-render() {
- return {this.state.status}
-}
-```
-
-RefreshHeader has these props and states extended from its parent. You can use it directly.
-
-* this.props.maxHeight: The type is `number`, it is the height for the refreshing header.
-* this.props.offset: The type is `Animated.Value`, Animated value for contentOffset.y of the SpringScrollView
-* this.state.status: The type is `HeaderStatus`, it is the status of the refreshing header.
-```$js
-export type HeaderStatus =
- | "waiting"
- | "pulling"
- | "pullingEnough"
- | "pullingCancel"
- | "refreshing"
- | "rebound";
-```
-
-#### Customize the height of the refreshing header
-
-Overwrite the static var `height` to change the height of the refreshing header.
-```
-class MyHeader extends RefreshHeader{
- static height:number = 50;
-}
-```
-
-#### Select the refreshing style
-
-Overwrite the static var `style` to change the style of the refreshing header.,default is "stickyContent":
-```
-class MyHeader extends RefreshHeader{
- static style:string = "stickyContent";
-}
-```
-
-SpringScrollView supports 3 kinds of style for refreshing header:
-
-style | preview
----- | ------
-"topping" | 
-"stickyScrollView" | 
-"stickyContent" | 
-
-#### Apply your customize refreshing header to SpringScrollView
-```$js
-
-```
-
-Fully example is here [NormalHeader](https://github.com/bolan9999/react-native-spring-scrollview/blob/master/src/NormalHeader.js)
-
-#### Native interpolate animation
-
-this.props.offset: Native driver animated value for contentOffset.y of the SpringScrollView, you can use it to make a native animation.
-
-Example:
-
-```$js
-
-```
-
-Fully example is here [NormalHeader](https://github.com/bolan9999/react-native-spring-scrollview/blob/master/src/NormalHeader.js)
-
-#### Lottie animation support
-
-Example:
-```
-export class CommonLottieHeader extends RefreshHeader {
- static height: number = 100;
-
- render() {
- let progress = this.props.offset.interpolate({
- inputRange: [-200, -150, -150, -100, -100, -50],
- outputRange: [1, 0, 1, 0, 1, 0]
- });
- if (this.state.status === "refreshing") {
- progress = undefined;
- }
- return (
-
-
-
- );
- }
-}
-```
-
-Full example is here [CommonLottieHeader](https://github.com/bolan9999/react-native-spring-scrollview/blob/master/src/Customize/CommonLottieHeader.js)
-
-### Contribute your awesome refreshing headers
-
-Fork [react-native-spring-scrollview](https://github.com/bolan9999/react-native-spring-scrollview), make awesome refreshing header in the [Customize](https://github.com/bolan9999/react-native-spring-scrollview/tree/master/src/Customize) dir, and pull a request to me.
diff --git a/docs/en/V2/DetailControl.md b/docs/en/V2/DetailControl.md
deleted file mode 100644
index db536eb..0000000
--- a/docs/en/V2/DetailControl.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# 细节控制
-
-属性 | 类型 | 默认值 | 作用
----- | ------ | --------- | --------
-decelerationRate | number | 0.998 | 在内容视图内松开手指,减速滑动的阻尼系数,单位是每毫秒百分比
-decelerationRateWhenOut | number | 0.9 | 超出内容视图以后松开手指,减速滑动的阻尼系数,单位是每毫秒百分比
-dampingCoefficient | number | 0.5 | 超出内容视图以后,继续滑动的阻尼系数,单位是百分比
-reboundEasing | (value: number) => number | Easing.cos | 超出内容视图松开手指完成减速以后的回弹动画函数
-reboundDuration | number | 300 | 回弹的时间
-getNativeOffset | (offset: Animated.Value) => any | ()=>null | 获得监听滑动偏移并支持原生动画的动画值(该值是合成值,不可监听,不可修改,只能用于原生动画,并且在[处理键盘遮挡](TextInput)的偏移中,该值不会改变)
-indicatorDismissTimeInterval | number | 3000 | LargeList滚动停止后指示器衰弱隐藏的时间间隔,单位毫秒
diff --git a/docs/en/V2/Event.md b/docs/en/V2/Event.md
deleted file mode 100644
index 7232ee0..0000000
--- a/docs/en/V2/Event.md
+++ /dev/null
@@ -1,27 +0,0 @@
-### onTouchBegin : ()=>any
-```$js
-{
- console.log("onTouchBegin");
-} />
-```
-
-### onTouchEnd : ()=>any
-```$js
-{
- console.log("onTouchEnd");
-} />
-```
-
-### onMomentumScrollBegin : ()=>any
-```$js
-{
- console.log("onMomentumScrollBegin");
-} />
-```
-
-### onMomentumScrollEnd : ()=>any
-```$js
-{
- console.log("onMomentumScrollEnd");
-} />
-```
diff --git a/docs/en/V2/KnownIssues.md b/docs/en/V2/KnownIssues.md
deleted file mode 100644
index 834702b..0000000
--- a/docs/en/V2/KnownIssues.md
+++ /dev/null
@@ -1,2 +0,0 @@
-# Known issues
-1. Can not nested with self, but can nested with ScrollView
diff --git a/docs/en/V2/Loading.md b/docs/en/V2/Loading.md
deleted file mode 100644
index c81376d..0000000
--- a/docs/en/V2/Loading.md
+++ /dev/null
@@ -1,54 +0,0 @@
-# Loading
-
-### Preview
-
-
-### Code
-
-Import
-
-```$js
-import { SpringScrollView } from "react-native-spring-scrollview";
-import { NormalFooter } from "react-native-spring-scrollview/NormalFooter";
-```
-
-It is easy to support loading more data with SpringScrollView. This library offers a `NormalFooter` for you. And you can try other loading footers in the [Customize](https://github.com/bolan9999/react-native-spring-scrollview/tree/master/src/Customize) dir.
-
-```$js
- (this._scrollView = ref)}
- loadingFooter={NormalFooter}
- allLoaded={this.state.allLoaded}
- onLoading={()=>{
- setTimeOut(()=>{
- this._scrollView.endLoading();
- this.setState({...});
- },2000);
- }>
-
- This is a Normal Loading Test
-
-
-```
-
-
-### Props
-
-Props | Type | Default | Description
----- | ------ | --------- | --------
-onLoading | ()=>any | undefined | The callback of loading. If set this prop, a loading footer will add to the botom of the SpringScrollView
-allLoaded | boolean | false | Whether the data is all loaded.
-loadingFooter | LoadingFooter | NormalFooter | The footer component of loading. If you want to customize loading footer , this will be helpful [Custom Loading](/en/V2/CustomLoading)
-
-
-
-### All loading footers in this library
-
-```
-import {NormalFooter} from "react-native-spring-scrollview/NormalFooter";
-import {
- WithLastDateFooter,
- ChineseNormalFooter,
- ChineseWithLastDateFooter,
-} from "react-native-spring-scrollview/Customize";
-```
diff --git a/docs/en/V2/Refresh.md b/docs/en/V2/Refresh.md
deleted file mode 100644
index 6903e1d..0000000
--- a/docs/en/V2/Refresh.md
+++ /dev/null
@@ -1,57 +0,0 @@
-# Pull to refresh
-
-### Preview
-
-
-### Import
-
-```$js
-import { SpringScrollView } from "react-native-spring-scrollview";
-import { NormalHeader } from "react-native-spring-scrollview/NormalHeader";
-```
-
-It is easy to support pulling to refresh with SpringScrollView. This library offers a `NormalHeader` for you. And you can try other refresh headers in the [Customize](https://github.com/bolan9999/react-native-spring-scrollview/tree/master/src/Customize) dir.
-
-### Simple Example
-
-```$js
- (this._scrollView = ref)}
- refreshHeader={ChineseWithLastDateHeader}
- onRefresh={()=>{
- setTimeOut(()=>{
- this._scrollView.endRefresh();
- this.setState(...);
- },2000);
- }
-
- This is a Normal Refresh Test
-
-
-```
-
-Props | Type | Default | description
----- | ------ | --------- | --------
-onRefresh | ()=>any | undefined | The callback when refreshing. When this props is configured, a refresh header will be add on the top of the SpringScrollView
-refreshHeader | [RefreshHeader](https://github.com/bolan9999/react-native-spring-scrollview/blob/master/src/RefreshHeader.js) | NormalHeader | Select a refreshing header , The headers in the [Customize](https://github.com/bolan9999/react-native-spring-scrollview/tree/master/src/Customize) dir are all supported
-
-
-**Precautions:** refreshHeaderHeight is not supported after V2. If you want to customize the height of the refreshing header. View [Customize the refreshing header height](en/V2/CustomRefresh?id=自定义刷新组件的高度) below [custom refreshing](en/V2/CustomRefresh) please.
-
-
-### Methods
-
-### endRefresh()
-
-End the refreshing status.
-
-### All refreshing headers in this library
-
-```
-import {NormalRefresh} from "react-native-spring-scrollview/NormalRefresh";
-import {
- WithLastDateHeader,
- ChineseNormalHeader,
- ChineseWithLastDateHeader,
-} from "react-native-spring-scrollview/Customize";
-```
diff --git a/docs/en/V2/Scroll.md b/docs/en/V2/Scroll.md
deleted file mode 100644
index 006523b..0000000
--- a/docs/en/V2/Scroll.md
+++ /dev/null
@@ -1,60 +0,0 @@
-# Scroll to
-
-It is easy to scrollTo:
-
-### Firstly,get the reference of the SpringScrollView:
-```$js
-(this._scrollView = ref)} />
-```
-
-### Secondly, call `scrollTo`
-```$js
-this._scrollView && this._scrollView.scrollTo({x:0,y:100}).then().catch();
-```
-### Available scrolling methods
-scrollTo({x:number, y:number}, animated:boolean=true):Promise<void>
-
-scroll({x:number, y:number}, animated:boolean=true):Promise<void>
-
-scrollToBegin(animated:boolean=true):Promise<void>
-
-scrollToEnd(animated: boolean = true):Promise<void>
-
-# onScroll listener on Javascript
-
-### onScroll : ({nativeEvent:{contentOffset:{x:number, y:number}}})=>any
-
-```$js
-{
- console.log("offset : x=", x, "y=", y);
-}/>
-```
-
-**Precautions:**
-
-* The `contentOffset` can be able to out of content view range.
-* Do not use `Animated.createAnimatedComponent`,SpringScrollView support all Animated.View styles, if you want to make a native interpolate animation, use `onNativeContentOffsetExtract` please.
-
-# Native onScroll listener
-
-### onNativeContentOffsetExtract : {x?:Animated.Value, y?:Animated.Value}
-
-This is a sticky view example:
-```$js
-_nativeOffset = {
- y: new Animated.Value(0)
-};
-
-render(){
- return
-
-
-}
-
-```
-
-
-
-
-
-
diff --git a/docs/en/V2/TextInput.md b/docs/en/V2/TextInput.md
deleted file mode 100644
index 13d3153..0000000
--- a/docs/en/V2/TextInput.md
+++ /dev/null
@@ -1,50 +0,0 @@
-# Keyboard avoiding
-
-### Firstly:create a reference
-```$js
-_ref = React.createRef();
-```
-
-### Secondly:assign to ref
-```$js
-
-
- ...//Other content
-
-
- );
- }
-}
-```
-
-Full example is here [InputExample](https://github.com/bolan9999/react-native-spring-scrollview/blob/master/Examples/InputExample.js)
-
-
-
diff --git a/docs/en/V2/Usage.md b/docs/en/V2/Usage.md
deleted file mode 100644
index fa06256..0000000
--- a/docs/en/V2/Usage.md
+++ /dev/null
@@ -1,34 +0,0 @@
-# Simple Usage
-
-Import:
-```$js
-import { SpringScrollView } from "react-native-spring-scrollview";
-```
-
-Check weather the installation is correct with the code below. See [Examples](https://github.com/bolan9999/react-native-spring-scrollview/tree/master/Examples) for more details.
-
-```$js
-export class BouncesAndScrollEnabledExample extends React.Component {
- _contentCount = 20;
- render() {
- const arr = [];
- for (let i = 0; i < this._contentCount; ++i) arr.push(i);
- return (
-
- {arr.map((i, index) =>
-
- Modify the '_contentCount','_bounces' and '_scrollEnabled' in
- BouncesExample.js to check if VerticalScrollView works well.
-
- )}
-
- );
- }
-}
-const styles = StyleSheet.create({
- text:{
- fontSize:16,
- margin:20
- }
-});
-```
diff --git a/docs/index.html b/docs/index.html
deleted file mode 100644
index feddac0..0000000
--- a/docs/index.html
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
-
-
-
-
- SpringScrollViewExample
-
-
-
-
-
-
-
-
-
-