В Kotlin вы можете использовать

я есть NestedScrollView, который используется с CoordinatorLayout + AppBarLayout + CollapsingToolbarLayout с эффектом параллакса, похожим наэтот урок

Мне нужно прокручивать содержимое программно (желательно плавную прокрутку, то есть анимированную), однако вызовы методов прокрутки (scrollBy (), scrollTo (), smoothScrollTo (), smoothScrollBy ()) ничего не делают.

Обратите внимание, что я используюapp:layout_behavior="@string/appbar_scrolling_view_behavior" <- Не уверен, если проблема связана с этим.

я звонюnsv_form.smoothScrollBy(0, 300) в Kotlin, когда пользователь нажимает кнопку, но ничего не происходит :(

(Тоже пробовалscrollTo(), scrollBy(), + - 300, всякие разные вариации)

ОБНОВЛЕНИЕ: я копался в исходном коде, и это похоже на*scroll*() методы ожидают, что содержимое макета будет больше, чем родительское представление (имеет смысл). В моем случае содержимое меньше, поэтому я подозреваю, что методы прокрутки не работают. Возможно, мне нужно что-то другое, а неscroll?

Позиция NestedScrollView начинается частично за пределами экрана с изображением над ним в CollapsingToolbarLayout,нравится, так что, похоже, мне нужно программно переместить положение NestedScrollView и вызвать поведение прокрутки CoordinatorLayout. -- Как мне это сделать?

Вот мой макет:

<?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: Как прокрутитьнравится программно?

Ответы на вопрос(2)

Ваш ответ на вопрос