Прокрутка Appbarlayout вверх только тогда, когда ScrollView прокрутки, а не когда пользователь подправить содержимое appbarlayout - PullRequest
0 голосов
/ 23 мая 2018

У меня есть AppBarLayout, который содержит FrameLayout, который содержит ImageView.Сам FrameLayout находится внутри CollapsingToolbarLayout.В нижней части AppBarLayout находится RecyclerView.

код выглядит следующим образом

 <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
                                             xmlns:app="http://schemas.android.com/apk/res-auto"
                                             android:id="@+id/root"
                                             android:layout_width="match_parent"
                                             android:layout_height="match_parent">

<android.support.design.widget.AppBarLayout
    android:id="@+id/appBarLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:overScrollMode="ifContentScrolls">

    <android.support.design.widget.CollapsingToolbarLayout
        android:layout_width="match_parent"
        app:layout_scrollFlags="scroll|exitUntilCollapsed"
        android:layout_height="wrap_content">

        <FrameLayout
            android:id="@+id/img_video_view"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            >

            <ImageView
                android:id="@+id/cropper_view"
                android:layout_width="match_parent"
                android:layout_height="250dp"
                android:background="#ff282828"
                android:visibility="visible"/>
        </FrameLayout>
    </android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>


<android.support.v7.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/white"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/img_video_view"/>

Когда пользователь касается раздела AppbarLayout, я невозникает необходимость прокрутки.Я хочу, чтобы прокрутка происходила только тогда, когда пользователь подправил свой просмотр.Как я могу это сделать?

Заранее спасибо.

1 Ответ

0 голосов
/ 30 мая 2018

Я решил свою проблему.:-) В соответствии с моим вопросом, я хотел передать сенсорное событие AppBarLayout в ImageView, который находится внутри него.Я переопределил onInterceptTouchEvent для AppBarLayout, CollapsingToolbarLayout и FrameLayout, как показано ниже, и вернул false;

@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
    return false;
}

Таким образом, ни одно из родительских представлений не перехватывает событие касания, а событие касания не передается в ImageView.

...