s métodos @NestedScrollView + CoodinatorLayout scrollBy () scrollTo () não fazem nada

Tenho um NestedScrollView sendo usado com CoordinatorLayout + AppBarLayout + CollapsingToolbarLayout com efeito de paralaxe semelhante aeste tutorial

Preciso rolar o conteúdo de forma programática (de preferência uma rolagem suave, ou seja, animada), mas chamar os métodos de rolagem (scrollBy (), scrollTo (), smoothScrollTo (), smoothScrollBy ()) não faz nad

Note que estou usandoapp:layout_behavior="@string/appbar_scrolling_view_behavior" <- Não tenho certeza se o problema está relacionado a iss

Estou ligandonsv_form.smoothScrollBy(0, 300) no Kotlin quando um usuário clica em um botão, mas nada acontece:

(Também tenteiscrollTo(), scrollBy(), + - 300, todos os tipos de variações diferentes)

UPDATE: Eu procurei no código fonte e parece que o*scroll*()s métodos @ esperam que o conteúdo do layout seja maior que a visualização principal (faz sentido). No meu caso, o conteúdo é menor, então suspeito que é por isso que os métodos de rolagem não funcionam. Talvez eu precise de algo diferente em vez descroll?

posição do @ NestedScrollView começa parcialmente fora da tela com uma imagem acima dela em um CollapsingToolbarLayout,como iss, parece que preciso mover programaticamente a posição do NestedScrollView AND para acionar o comportamento de rolagem do CoordinatorLayout. -- Como eu faço isso

Aqui está o meu layout:

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.google.android.material.appbar.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/transparent">

        <com.google.android.material.appbar.CollapsingToolbarLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            app:expandedTitleMarginEnd="64dp"
            app:expandedTitleMarginStart="48dp"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <ImageView
                android:id="@+id/iv_image"
                android:layout_width="match_parent"
                android:layout_height="@dimen/image_height"
                android:scaleType="centerCrop"
                app:layout_collapseMode="parallax"
                tools:src="@drawable/some_image" />

        </com.google.android.material.appbar.CollapsingToolbarLayout>

    </com.google.android.material.appbar.AppBarLayout>

    <androidx.core.widget.NestedScrollView
        android:id="@+id/nsv_form"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/white"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:animateLayoutChanges="true"
            android:orientation="vertical">

            [... child views...]

        </LinearLayout>

    </androidx.core.widget.NestedScrollView>    
</androidx.coordinatorlayout.widget.CoordinatorLayout>

TLDR: Como faço para rolarcomo iss programaticamente?

questionAnswers(2)

yourAnswerToTheQuestion