nativescript-community / ui-persistent-bottomsheet

https://nativescript-community.github.io/ui-persistent-bottomsheet/
Apache License 2.0
12 stars 3 forks source link

[Android] Cannot scroll ScrollView inside bottom sheet #8

Open tommag21 opened 2 years ago

tommag21 commented 2 years ago

On Android I cannot scroll a ScrollView placed inside a bottom sheet. A RadListView works fine.

I have updated the test repo to test this bug: https://github.com/tommag21/bottomsheet-test

farfromrefug commented 2 years ago

@tommag21 it is normal. N scrollview wont support it. You need to use a NestedScrollView using a class like this:

class NestedScrollView extends ScrollView {
    createNativeView() {
        if (__ANDROID__) {
            return new androidx.core.widget.NestedScrollView(this._context);
        }
        return super.createNativeView();
    }
}
tommag21 commented 2 years ago

Thanks. Do you have a sample or a demo I can refer to? I don't know how do I have to initialise the component correctly in a NativeScript-Vue app.

I tried registering the component on my main like this:

Vue.registerElement("NestedScrollView", () => NestedScrollView, {});

But when I try to scroll the bottom sheet (with matching scrollViewId and bottomsheet id) I get this error:

StackTrace ``` System.err: An uncaught Exception occurred on "main" thread. System.err: Calling js method onTouchEvent failed System.err: TypeError: this.nativeViewProtected.getScrollEnabled is not a function System.err: System.err: StackTrace: System.err: [isScrollEnabled:getDefault](file: app/webpack:/mynativescriptapp/node_modules/@nativescript/core/ui/scroll-view/index.android.js:48:0) System.err: at Property.set(file: app/webpack:/mynativescriptapp/node_modules/@nativescript/core/ui/core/properties/index.js:188:0) System.err: at set isScrollEnabled(file: app/webpack:/mynativescriptapp/node_modules/@nativescript-community/ui-persistent-bottomsheet/index.js:299:0) System.err: at set translationY(file: app/webpack:/mynativescriptapp/node_modules/@nativescript-community/ui-persistent-bottomsheet/index.js:112:0) System.err: at onGestureTouch(file: app/webpack:/mynativescriptapp/node_modules/@nativescript-community/ui-persistent-bottomsheet/index.js:404:0) System.err: at _handleEvent(file: app/webpack:/mynativescriptapp/node_modules/@nativescript/core/data/observable/index.js:230:0) System.err: at notify(file: app/webpack:/mynativescriptapp/node_modules/@nativescript/core/data/observable/index.js:216:0) System.err: at onTouchEvent(file: app/webpack:/mynativescriptapp/node_modules/@nativescript-community/gesturehandler/gesturehandler.android.js:131:0) System.err: at com.tns.Runtime.callJSMethodNative(Native Method) System.err: at com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1302) System.err: at com.tns.Runtime.callJSMethodImpl(Runtime.java:1188) System.err: at com.tns.Runtime.callJSMethod(Runtime.java:1175) System.err: at com.tns.Runtime.callJSMethod(Runtime.java:1153) System.err: at com.tns.Runtime.callJSMethod(Runtime.java:1149) System.err: at com.tns.gen.com.swmansion.gesturehandler.OnTouchEventListener.onTouchEvent(OnTouchEventListener.java:30) System.err: at com.swmansion.gesturehandler.GestureHandler.dispatchTouchEvent(GestureHandler.java:90) System.err: at com.swmansion.gesturehandler.GestureHandlerOrchestrator.deliverEventToGestureHandler(GestureHandlerOrchestrator.java:320) System.err: at com.swmansion.gesturehandler.GestureHandlerOrchestrator.deliverEventToGestureHandlers(GestureHandlerOrchestrator.java:272) System.err: at com.swmansion.gesturehandler.GestureHandlerOrchestrator.onTouchEvent(GestureHandlerOrchestrator.java:103) System.err: at com.nativescript.gesturehandler.PageLayout.dispatchTouchEventToOrchestrator(PageLayout.java:119) System.err: at com.nativescript.gesturehandler.PageLayout.dispatchTouchEvent(PageLayout.java:132) System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118) System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799) System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118) System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799) System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118) System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799) System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118) System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799) System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118) System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799) System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118) System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799) System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118) System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799) System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118) System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799) System.err: at com.nativescript.gesturehandler.PageLayout.dispatchTouchEvent(PageLayout.java:135) System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118) System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799) System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118) System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799) System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118) System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799) System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118) System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799) System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118) System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799) System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118) System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799) System.err: at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:488) System.err: at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1871) System.err: at android.app.Activity.dispatchTouchEvent(Activity.java:4125) System.err: at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69) System.err: at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:446) System.err: at android.view.View.dispatchPointerEvent(View.java:14568) System.err: at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:6016) System.err: at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5819) System.err: at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5310) System.err: at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5367) System.err: at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5333) System.err: at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5485) System.err: at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5341) System.err: at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:5542) System.err: at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5314) System.err: at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5367) System.err: at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5333) System.err: at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5341) System.err: at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5314) System.err: at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:8080) System.err: at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:8031) System.err: at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:7992) System.err: at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:8203) System.err: at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:220) System.err: at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method) System.err: at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:200) System.err: at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:8160) System.err: at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:8242) System.err: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:972) System.err: at android.view.Choreographer.doCallbacks(Choreographer.java:796) System.err: at android.view.Choreographer.doFrame(Choreographer.java:724) System.err: at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:957) System.err: at android.os.Handler.handleCallback(Handler.java:938) System.err: at android.os.Handler.dispatchMessage(Handler.java:99) System.err: at android.os.Looper.loop(Looper.java:223) System.err: at android.app.ActivityThread.main(ActivityThread.java:7656) System.err: at java.lang.reflect.Method.invoke(Native Method) System.err: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) System.err: com.tns.NativeScriptException: Error: Cannot convert object to Ljava/lang/Throwable; at index 0 System.err: at com.tns.Runtime.passExceptionToJsNative(Native Method) System.err: at com.tns.Runtime.passUncaughtExceptionToJs(Runtime.java:84) System.err: at com.tns.NativeScriptUncaughtExceptionHandler.uncaughtException(NativeScriptUncaughtExceptionHandler.java:34) System.err: at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1073) System.err: at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068) System.err: at java.lang.Thread.dispatchUncaughtException(Thread.java:2203) ```
tommag21 commented 2 years ago

I managed to override the methods [isScrollEnabledProperty.getDefault] [isScrollEnabledProperty.setNative but now I get a ViewGroup error. I tried installing the plugin @triniwiz/nativescript-nested-scrollview but got the same error.

Stack trace ``` System.err: An uncaught Exception occurred on "main" thread. System.err: already recycled once System.err: System.err: StackTrace: System.err: java.lang.IllegalStateException: already recycled once System.err: at android.view.ViewGroup$TouchTarget.recycle(ViewGroup.java:8863) System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2809) System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118) System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799) System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118) System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799) System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3140) System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799) System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118) System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799) System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118) System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799) System.err: at com.nativescript.gesturehandler.PageLayout.dispatchTouchEvent(PageLayout.java:135) System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118) System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799) System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118) System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799) System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118) System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799) System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118) System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799) System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118) System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799) System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118) System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799) System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118) System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799) System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118) System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799) System.err: at com.nativescript.gesturehandler.PageLayout.dispatchTouchEvent(PageLayout.java:135) System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118) System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799) System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118) System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799) System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118) System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799) System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118) System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799) System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118) System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799) System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3118) System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2799) System.err: at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:488) System.err: at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1871) System.err: at android.app.Activity.dispatchTouchEvent(Activity.java:4125) System.err: at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69) System.err: at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:446) System.err: at android.view.View.dispatchPointerEvent(View.java:14568) System.err: at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:6016) System.err: at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5819) System.err: at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5310) System.err: at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5367) System.err: at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5333) System.err: at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5485) System.err: at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5341) System.err: at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:5542) System.err: at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5314) System.err: at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5367) System.err: at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5333) System.err: at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5341) System.err: at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5314) System.err: at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:8080) System.err: at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:8031) System.err: at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:7992) System.err: at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:8203) System.err: at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:220) System.err: at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method) System.err: at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:200) System.err: at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:8160) System.err: at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:8242) System.err: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:972) System.err: at android.view.Choreographer.doCallbacks(Choreographer.java:796) System.err: at android.view.Choreographer.doFrame(Choreographer.java:724) System.err: at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:957) System.err: at android.os.Handler.handleCallback(Handler.java:938) System.err: at android.os.Handler.dispatchMessage(Handler.java:99) System.err: at android.os.Looper.loop(Looper.java:223) System.err: at android.app.ActivityThread.main(ActivityThread.java:7656) System.err: at java.lang.reflect.Method.invoke(Native Method) System.err: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) System.err: com.tns.NativeScriptException: Error: Cannot convert object to Ljava/lang/Throwable; at index 0 System.err: at com.tns.Runtime.passExceptionToJsNative(Native Method) System.err: at com.tns.Runtime.passUncaughtExceptionToJs(Runtime.java:84) System.err: at com.tns.NativeScriptUncaughtExceptionHandler.uncaughtException(NativeScriptUncaughtExceptionHandler.java:34) System.err: at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1073) System.err: at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068) System.err: at java.lang.Thread.dispatchUncaughtException(Thread.java:2203) ```
farfromrefug commented 2 years ago

@tommag21 this is your error com.tns.NativeScriptException: Error: Cannot convert object to Ljava/lang/Throwable; at index 0. Cant tell you where or why it is happening. You need to investigate this in your code

tommag21 commented 2 years ago

The ScrollView contains a v-for that renders content fetched asynchronously. Rendering the ScrollView after the content is fetched does not throw the exception, but it's still not responsive to scrolling.

At the moment I'm short on time and cannot continue debugging the nested scrollview, maybe I will continue in the future.

fpaaske commented 1 year ago

@tommag21 it's now the future, and if you're still investigating, maybe my experience can help :) I've had the same issue as you (but with Angular) where the ListView/ScrollView is not responding to scrolling.

After talking to the super helpful guys (like @farfromrefug) on the NativeScript discord, this is what worked for me:

Create the native class CustomNestedScrollView

@NativeClass
class CustomNestedScrollView extends androidx.core.widget.NestedScrollView {
  private scrollEnabled: boolean;
  constructor(context: any) {
    super(context);
  }

  getScrollEnabled(): boolean {
    return this.scrollEnabled;
  }

  setScrollEnabled(enabled: boolean) {
    this.scrollEnabled = enabled;
  }
}

Create the NestedScrollView to use in the markup

import {ScrollView} from "@nativescript/core";

declare var androidx;

export class NestedScrollView extends ScrollView {
  createNativeView() {
    if (__ANDROID__) {
      return new CustomNestedScrollView(this._context);
    }
    return super.createNativeView();
  }
}

Create the markup

Notice the scrollViewId link between the BottomSheet and the NestedScrollView.

<BottomSheet [stepIndex]="stepIndex"
             (stepIndexChange)="onIndexChanged($event)"
             [steps]="bottomSheetSteps"
             scrollViewId="linkedScrollView"
>
    <GridLayout height="100%"
                width="100%"
    >
        <ListView [items]="items">
            <ng-template let-item="item">
                <StackLayout [nsRouterLink]="['/item', item.id]">
                    <Label [text]="item.name"></Label>
                </StackLayout>
            </ng-template>
        </ListView>
    </GridLayout>

    <GridLayout bottomSheet
                rows="56, 100, auto"
                columns="*"
                class="bottomSheet"
    >
        <GridLayout rows="auto" columns="*, *, *, *" row="0">
            <Button col="0" text="Step 0" class="Button" (tap)="setIndex(0)"></Button>
            <Button col="1" text="Step 1" class="Button" (tap)="setIndex(1)"></Button>
            <Button col="2" text="Step 2" class="Button" (tap)="setIndex(2)"></Button>
            <Button col="3" text="Step 3" class="Button" (tap)="setIndex(3)"></Button>
        </GridLayout>
        <StackLayout row="1" backgroundColor="orange">
            <Label text="Second step section"></Label>
        </StackLayout>
        <GridLayout row="2"
                    [height]="textViewHeight"
                    class="textView"
        >
            <NestedScrollView id="linkedScrollView" class="scrollView">
                <StackLayout>
                    <StackLayout *ngFor="let item of items">
                        <Label [text]="item.name"></Label>
                    </StackLayout>
                </StackLayout>
            </NestedScrollView>
        </GridLayout>
    </GridLayout>
</BottomSheet>

Now you can scroll in the list behind the bottomSheet, you can drag the bottomSheet up and down, AND you can scroll inside the bottomSheet.

tommag21 commented 1 year ago

@fpaaske thank you! I ended up disabling the bottom sheet drag, I will try your solution asap.

tommag21 commented 1 year ago

Gave it a try finally! That's what I did on NativeScript-Vue:

CustomNestedScrollView.ts

import { ScrollView } from "@nativescript/core";

export class NestedScrollView extends ScrollView {
  createNativeView() {
    if (__ANDROID__) {
      @NativeClass
      class CustomNestedScrollView extends androidx.core.widget.NestedScrollView {
        private scrollEnabled: boolean = true;

        constructor(context: any) {
          super(context);
        }

        getScrollEnabled(): boolean {
          return this.scrollEnabled;
        }

        setScrollEnabled(enabled: boolean) {
          this.scrollEnabled = enabled;
        }
      }

      return new CustomNestedScrollView(this._context);
    }
    return super.createNativeView();
  }
}

app.ts

import Vue from "nativescript-vue";
import { NestedScrollView } from "~/components/CustomNestedScrollView";

Vue.registerElement("NestedScrollView", () => NestedScrollView);
tommag21 commented 1 year ago

As a side note, I had to set scrollViewId con Android only to make the ScrollView work on iOS.

<BottomSheet android:scrollViewId="linkedScrollView">
fpaaske commented 11 months ago

Very nice @tommag21 👍