CollapsingToolbarLayout滚动问题

时间:2016-01-21 13:25:59

标签: toolbar android-coordinatorlayout android-collapsingtoolbarlayout

我在Android Studio中已经CollapsingToolbarLayout给出了ScrollingActivity的问题。

向下滚动可以很好地运行,但是当我想向上滚动时,它总是向我显示在没有再次展开Toolbar的情况下到达屏幕的结尾。要扩展Toolbar,我必须在屏幕结束时再次向上滚动。

由于我在解释问题方面并不是很擅长,因此我在YouTube上发布了一个视频,以便您自己查看。

视频:https://youtu.be/WrzsY2ooj9o

你也可以在那里看到一个小虫子。工具栏有时只是用手指做出“坏动作”而自行折叠,我想你可以在0:11看到它。

感谢任何帮助!

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.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"
    android:fitsSystemWindows="true"
    tools:context="com.appmac.ron.myapplication.ScrollingActivity">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/app_bar"
        android:layout_width="match_parent"
        android:layout_height="250dp"
        android:fitsSystemWindows="true"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/toolbar_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            app:contentScrim="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:layout_collapseMode="pin"
                app:popupTheme="@style/AppTheme.PopupOverlay" />

        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>

    <include layout="@layout/content_scrolling" />

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="@dimen/fab_margin"
        android:src="@android:drawable/ic_dialog_email"
        app:layout_anchor="@id/app_bar"
        app:layout_anchorGravity="bottom|end" />

</android.support.design.widget.CoordinatorLayout>

2 个答案:

答案 0 :(得分:3)

更新至26.0.0-beta2。 AppbarLayout应该按预期工作。详情:Carry on Scrolling

好的,我认为third party library可以使其发挥作用。事实上,我反编译了其他应用程序,并发现:)

以上所有都被取消了,我发现了这一点。有一种简单的方法可以解决这个问题。只需将 OnScrollChangeListener 侦听器设置为 nestedsrollview 即可。关键代码如下:

nestScrollView.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
  @Override
  public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX,
      int oldScrollY) {
    if(scrollY == 0) appBarLayout.setExpanded(true);  
  }
});

动画将通过方法appBarLayout本身完成。

答案 1 :(得分:0)

参考Google issue tracker, 问题已在 最新库版本26.1.0

上解决

如果问题仍然存在,请在Google issue tracker报告,然后重新审核。