当前位置: 首页 > 知识库问答 >
问题:

滑动时向下滚动折叠工具栏

宿嘉庆
2023-03-14

当我做快速挺举时,我有一个CollapsingToolbarLayout的问题。隐藏appBar也会发生同样的事情

我需要工具栏隐藏在滚动和折叠工具栏折叠。当滚动不是很快时,它工作得很好。

但是当它很快的时候——似乎appBar在那之后就崩溃并扩展了。但它没有扩展回来。

请看视频。

折叠工具栏布局

应用程序栏

似乎这个答案是我需要的,但它不起作用。

我的折叠工具栏布局的 xml :

    <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorLightGray"
    android:clickable="true"
    android:fitsSystemWindows="true"
    android:orientation="vertical"
    >
  <android.support.design.widget.AppBarLayout
      android:id="@+id/app_bar_layout"
      android:layout_width="match_parent"
      android:layout_height="200dp"
      android:fitsSystemWindows="true"
      android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
      >
    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapsing_toolbar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        android:minHeight="?attr/actionBarSize"
        app:contentScrim="?attr/colorPrimary"
        app:expandedTitleMarginEnd="64dp"
        app:expandedTitleMarginStart="48dp"
        app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"
        >
      <ImageView
          android:id="@+id/ivSectionCover"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:fitsSystemWindows="true"
          android:scaleType="centerCrop"
          app:layout_collapseMode="parallax"
          />
      <ImageView
          android:layout_width="match_parent"
          android:layout_height="130dp"
          android:layout_gravity="bottom"
          android:alpha="0.5"
          android:scaleType="fitXY"
          app:layout_collapseMode="pin"
          app:srcCompat="@drawable/background_gradient"
          />
      <android.support.v7.widget.Toolbar
          android:id="@+id/toolbar"
          android:layout_width="match_parent"
          android:layout_height="?attr/actionBarSize"
          app:layout_collapseMode="pin"
          app:layout_scrollFlags="scroll|enterAlways"
          app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
          />
    </android.support.design.widget.CollapsingToolbarLayout>
  </android.support.design.widget.AppBarLayout>
  <TextView
      android:id="@+id/tvEmptyList"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_gravity="center"
      android:text="@string/books_empty_list"
      android:textColor="@color/colorGray"
      android:textSize="18sp"
      android:visibility="gone"
      />
  <RelativeLayout
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:layout_marginBottom="?attr/actionBarSize"
      android:clickable="true"
      app:layout_behavior="@string/appbar_scrolling_view_behavior"
      >
    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clickable="true"
        android:fillViewport="true"
        >
      <RelativeLayout
          android:id="@+id/rlContent"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:clickable="true"
          >
        <android.support.v7.widget.RecyclerView
            android:id="@+id/rvBooksSection"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="4dp"
            android:layout_marginLeft="4dp"
            android:layout_marginRight="4dp"
            android:layout_marginTop="4dp"
            android:clickable="true"
            />
      </RelativeLayout>
    </android.support.v4.widget.NestedScrollView>
    <View
        android:layout_width="match_parent"
        android:layout_height="4dp"
        android:background="@drawable/toolbar_dropshadow"
        />
  </RelativeLayout>
</android.support.design.widget.CoordinatorLayout>

共有2个答案

柯子琪
2023-03-14

尝试删除属性 Android: fitsSystemWindows=“true” 或将其更改为 false。看起来布局在状态栏后面。适合系统窗口将允许布局超出状态栏甚至导航栏。

穆承运
2023-03-14

不幸的是,我还没有找到解决方案,但我通过添加以下内容来减少混蛋的频率:

CoordinatorLayout.LayoutParams params =
    (CoordinatorLayout.LayoutParams) mAppBarLayout.getLayoutParams();
AppBarLayout.Behavior behavior = (AppBarLayout.Behavior) params.getBehavior();
if (behavior != null) {
  behavior.setDragCallback(new AppBarLayout.Behavior.DragCallback() {
    @Override public boolean canDrag(@NonNull AppBarLayout appBarLayout) {
      return false;
    }
  });
}
params.setBehavior(behavior);

我还编辑了这样的布局:

<android.support.design.widget.AppBarLayout
  android:id="@+id/app_bar_layout"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:fitsSystemWindows="true"
  android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
  >
<android.support.design.widget.CollapsingToolbarLayout
    android:id="@+id/collapsing_toolbar"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorLightGray"
    android:fitsSystemWindows="true"
    android:minHeight="?attr/actionBarSize"
    app:contentScrim="@color/colorLightGray"
    app:expandedTitleMarginEnd="64dp"
    app:expandedTitleMarginStart="48dp"
    app:layout_scrollFlags="scroll|exitUntilCollapsed"
    >
  <ImageView
      android:id="@+id/ivSectionCover"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:fitsSystemWindows="true"
      android:scaleType="centerCrop"
      android:src="@color/colorLightGray"
      app:layout_collapseMode="parallax"
      />
  <ImageView
      android:layout_width="match_parent"
      android:layout_height="170dp"
      android:layout_gravity="bottom"
      android:alpha="0.5"
      android:scaleType="fitXY"
      app:layout_collapseMode="pin"
      app:srcCompat="@drawable/background_gradient"
      />
  <android.support.v7.widget.Toolbar
      android:id="@+id/toolbar"
      android:layout_width="match_parent"
      android:layout_height="?attr/actionBarSize"
      app:layout_collapseMode="pin"
      app:layout_scrollFlags="scroll|enterAlways|snap"
      app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
      />
</android.support.design.widget.CollapsingToolbarLayout>
 类似资料:
  • 我正在尝试在我的android应用程序中实现折叠工具栏。我可以按我希望的方式显示工具栏,但滚动时它不会塌陷。 我正在使用以下代码 activity.xml main_toolbar.xml 下面是屏幕的外观

  • 嵌套滚动视图在向下滚动时滚动流畅,但在向上滚动时滚动缓慢。向上滚动时折叠工具栏(带有图像视图和框架布局)不会呈现其内容(保持空白)。我已经尝试了折叠工具栏中的每个标志。

  • 当布局形成时,一切都很好,就像图像是由状态栏形成的,状态栏的颜色是透明的。但是每当我向上滚动然后向下滚动回收器视图时,图像就会滚动到状态栏下。但当我点击图像时,它就会占据原来的位置。 样式代码/V21 折叠工具栏布局的代码。 滚动前 向下滚动后出现状态栏

  • 我正在开发一个Android应用程序,其中我使用、和来使用折叠工具栏功能。 我在布局中使用在相同的布局中展开和折叠。当我试图从屏幕中心向上滚动时,它不起作用,但当我试图从屏幕右角向上滚动屏幕时,它会平滑滚动。 下面提到的是我的 xml 文件 layout.xml 理想的结果是,当我尝试从屏幕中心向上滚动时,它应该像我从手机右角向上滚动一样工作。 请观看下面提到的视频,以便更清楚地了解问题 http

  • 我有一个带有,我想让它顺利工作。 我的问题是,当从内容向上滚动时,我的折叠工具栏不会自动展开,但当它到达顶部时会被阻止。然后我需要再次向上滚动以展开工具栏。 我想实现从内容平滑向上滚动,这将自动扩展我的< code > CollapsingToolbarLayout 这是我的代码: 我发现了一些类似的问题,但没有一个答案对我有用。

  • 我正在我的应用程序中实现折叠工具栏,它应该没问题,但栏不受限制..不动不做任何!!! 这是我的布局. xml 这是我的活动 请告诉我为什么,提前谢谢! 更新:我已经解决了NestedScrollView的问题,我做了如下操作: