Browse Source

try to make scroll anim work

Daniel Zlotin 8 years ago
parent
commit
37f59a9d03

+ 3
- 0
android/app/build.gradle View File

50
     compile "com.android.support:appcompat-v7:23.0.1"
50
     compile "com.android.support:appcompat-v7:23.0.1"
51
     compile 'com.android.support:design:23.1.1'
51
     compile 'com.android.support:design:23.1.1'
52
     compile "com.facebook.react:react-native:+"  // From node_modules
52
     compile "com.facebook.react:react-native:+"  // From node_modules
53
+
54
+    testCompile "junit:junit:4.12"
55
+    testCompile "org.robolectric:robolectric:3.1.1"
53
 }
56
 }

+ 1
- 1
android/app/src/main/java/com/reactnativenavigation/animation/HideOnScrollAnimator.java View File

33
 
33
 
34
     public void onScrollChanged(ScrollDirectionListener.Direction scrollDirection) {
34
     public void onScrollChanged(ScrollDirectionListener.Direction scrollDirection) {
35
         if (hideDirection == HideDirection.Down) {
35
         if (hideDirection == HideDirection.Down) {
36
-            handleDownHidingViews(scrollDirection); //TODO better name
36
+            handleDownHidingViews(scrollDirection);
37
         } else {
37
         } else {
38
             handleUpHidingViews(scrollDirection);
38
             handleUpHidingViews(scrollDirection);
39
         }
39
         }

+ 8
- 1
android/app/src/main/java/com/reactnativenavigation/layouts/ScreenImpl.java View File

5
 import android.content.Context;
5
 import android.content.Context;
6
 import android.graphics.Color;
6
 import android.graphics.Color;
7
 import android.os.Build;
7
 import android.os.Build;
8
+import android.util.Log;
8
 import android.view.View;
9
 import android.view.View;
9
 import android.view.Window;
10
 import android.view.Window;
10
 import android.widget.LinearLayout;
11
 import android.widget.LinearLayout;
11
 
12
 
13
+import com.reactnativenavigation.animation.HideOnScrollAnimator;
12
 import com.reactnativenavigation.params.ScreenParams;
14
 import com.reactnativenavigation.params.ScreenParams;
13
 import com.reactnativenavigation.params.ScreenStyleParams;
15
 import com.reactnativenavigation.params.ScreenStyleParams;
14
 import com.reactnativenavigation.utils.SdkSupports;
16
 import com.reactnativenavigation.utils.SdkSupports;
24
     private final ScreenParams screenParams;
26
     private final ScreenParams screenParams;
25
     private ContentView contentView;
27
     private ContentView contentView;
26
     private TopBar topBar;
28
     private TopBar topBar;
29
+    private HideOnScrollAnimator scrollAnimator;
27
 
30
 
28
     public ScreenImpl(Context context, ScreenParams screenParams) {
31
     public ScreenImpl(Context context, ScreenParams screenParams) {
29
         super(context);
32
         super(context);
102
 
105
 
103
     @Override
106
     @Override
104
     public void onScrollChanged(ScrollDirectionListener.Direction direction) {
107
     public void onScrollChanged(ScrollDirectionListener.Direction direction) {
105
-        // TODO handle if needed
108
+        Log.d("TAG", "onScrollChanged: ");
109
+        if (scrollAnimator == null) {
110
+            scrollAnimator = new HideOnScrollAnimator(topBar, HideOnScrollAnimator.HideDirection.Up, topBar.getHeight());
111
+        }
112
+        scrollAnimator.onScrollChanged(direction);
106
     }
113
     }
107
 
114
 
108
     @Override
115
     @Override

+ 2
- 0
android/app/src/main/java/com/reactnativenavigation/views/ScrollViewAttacher.java View File

1
 package com.reactnativenavigation.views;
1
 package com.reactnativenavigation.views;
2
 
2
 
3
+import android.util.Log;
3
 import android.view.View;
4
 import android.view.View;
4
 import android.view.ViewGroup;
5
 import android.view.ViewGroup;
5
 import android.widget.ScrollView;
6
 import android.widget.ScrollView;
38
 
39
 
39
     private void findScrollAndStartListening() {
40
     private void findScrollAndStartListening() {
40
         scrollView = findScrollView(view);
41
         scrollView = findScrollView(view);
42
+        Log.d("LOG", "ScrollViewAttacher.findScrollAndStartListening " + scrollView);
41
         if (scrollView != null) {
43
         if (scrollView != null) {
42
             scrollDirectionListener = new ScrollDirectionListener(scrollView, onChanged);
44
             scrollDirectionListener = new ScrollDirectionListener(scrollView, onChanged);
43
             scrollView.getViewTreeObserver().addOnScrollChangedListener(scrollDirectionListener);
45
             scrollView.getViewTreeObserver().addOnScrollChangedListener(scrollDirectionListener);

+ 1
- 1
example-redux/src/app.js View File

37
       case 'login':
37
       case 'login':
38
         Navigation.startSingleScreenApp({
38
         Navigation.startSingleScreenApp({
39
           screen: {
39
           screen: {
40
-            screen: 'example.FirstTabScreen',
40
+            screen: 'example.ListScreen',
41
             title: 'Login',
41
             title: 'Login',
42
             navigatorStyle: {}
42
             navigatorStyle: {}
43
           },
43
           },