首页 > 解决方案 > 如何禁用或停止坐标布局滚动

问题描述

我面临一个问题。

我有一个坐标布局,里面有工具栏等等。

我里面也有一个框架布局,框架内布局我有三个片段。

那里有一个聊天片段,因为我有一个回收站视图。

移动到该选项卡时,我使用 AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL 或 AppBarLayout.LayoutParams.SCROLL_FLAG_EXIT_UNTIL_COLLAPSED 滚动布局。

但是当我滚动回收器视图时,坐标布局也会滚动。

我希望坐标布局仅在第一次滚动,并希望在回收器视图滚动时禁用。

这是我的 XML 文件。

<?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:id="@+id/co_ordinate_layout"
    android:layout_height="match_parent"
    android:background="@color/offwhite">

    <com.google.android.material.appbar.AppBarLayout
        android:id="@+id/appBarLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/offwhite"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        tools:ignore="ExtraText">

        <com.google.android.material.appbar.CollapsingToolbarLayout
            android:id="@+id/collapseBar"
            android:layout_width="match_parent"
            android:layout_height="200dp"
            app:expandedTitleMarginBottom="94dp"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <androidx.appcompat.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="100dp"
                android:background="@null"
                android:backgroundTint="@color/white"
                android:visibility="visible"
                app:layout_collapseMode="pin"
                app:navigationIcon="@drawable/ic_cancel" />

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

        <TextView
            android:id="@+id/tv_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="@dimen/_7sdp"
            android:gravity="center"
            android:orientation="vertical"
            android:padding="@dimen/_7sdp"
            android:text="Mimi51"
            android:textColor="@color/secondary_text"
            android:textSize="@dimen/_20sdp"
            app:layout_scrollFlags="scroll|enterAlways|snap" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:gravity="center"
            android:orientation="horizontal">

            <LinearLayout
                android:id="@+id/llProfile"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/tvProfile"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:orientation="vertical"
                    android:paddingStart="@dimen/_5sdp"
                    android:paddingEnd="@dimen/_5sdp"
                    android:text="@string/profile"
                    android:textAllCaps="true"
                    android:textColor="@color/secondary_text"
                    android:textSize="@dimen/normal_textsize"
                    android:textStyle="bold" />

                <View
                    android:id="@+id/viewProfile"
                    android:layout_width="match_parent"
                    android:layout_height="@dimen/_2sdp"
                    android:background="@color/theme" />

            </LinearLayout>

            <LinearLayout
                android:id="@+id/llPlayList"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/tvPlayList"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:orientation="vertical"
                    android:paddingStart="@dimen/_5sdp"
                    android:paddingEnd="@dimen/_5sdp"
                    android:text="@string/playlist"
                    android:textAllCaps="true"
                    android:textColor="@color/secondary_text"
                    android:textSize="@dimen/normal_textsize"
                    android:textStyle="bold" />


                <View
                    android:id="@+id/viewPlayList"
                    android:layout_width="match_parent"
                    android:layout_height="@dimen/_2sdp"
                    android:background="@color/theme" />

            </LinearLayout>

            <LinearLayout
                android:id="@+id/llChat"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:orientation="vertical">

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:orientation="horizontal"
                    android:paddingStart="@dimen/_5sdp"
                    android:paddingEnd="@dimen/_5sdp">

                    <TextView
                        android:id="@+id/tvChat"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:orientation="vertical"
                        android:text="Chat"
                        android:textAllCaps="true"
                        android:textColor="@color/secondary_text"
                        android:textSize="@dimen/normal_textsize"
                        android:textStyle="bold" />

                    <TextView
                        android:id="@+id/tvChatConut"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginStart="@dimen/_5sdp"
                        android:background="@drawable/stock_chat_count"
                        android:orientation="vertical"
                        android:paddingStart="@dimen/_10sdp"
                        android:paddingTop="@dimen/_2sdp"
                        android:paddingEnd="@dimen/_10sdp"
                        android:paddingBottom="@dimen/_2sdp"
                        android:text="1"
                        android:textAllCaps="true"
                        android:textColor="@color/theme"
                        android:textSize="@dimen/small_textsize" />
                </LinearLayout>

                <View
                    android:id="@+id/viewChat"
                    android:layout_width="match_parent"
                    android:layout_height="@dimen/_2sdp"
                    android:background="@color/theme" />

            </LinearLayout>

        </LinearLayout>

        <View
            android:id="@+id/view_header"
            android:layout_width="match_parent"
            android:layout_height="2dp"
            android:background="@color/gray_light"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/cl_header" />

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

    <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />

    <de.hdodenhof.circleimageview.CircleImageView
        android:id="@+id/imgProfile"
        android:layout_width="160dp"
        android:layout_height="160dp"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="30dp"
        android:elevation="8dp"
        android:padding="3dp"
        android:src="@color/theme"
        app:layout_anchorGravity="top|center_horizontal"
        app:layout_scrollFlags="scroll" />

</androidx.coordinatorlayout.widget.CoordinatorLayout>

标签: androidandroid-coordinatorlayout

解决方案


推荐阅读