我有一个CollapsingToolbarLayout
问题来自已经在Android Studio中的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>
更新到26.0.0-beta2。 AppbarLayout应该按预期工作。详细信息:Carry on Scrolling
好吧,我认为third party library可以使它工作。事实上,我反编译其他应用程序并找到这个:)
以上都是郁闷,我发现了这一点。有一种简单的方法可以解决这个问题。只需将onScrollChangeListener侦听器设置为nestedscrollview即可。关键代码如下:
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本身来完成。
参考Google issue tracker,问题在最新的库版本26.1.0上得到解决。
如果任何问题仍然存在,请在Google issue tracker报告,他们将重新开放审查。