我正在尝试为我的应用在工具栏上显示菜单。
目前,我有一个CollapsingToolbarLayout。当用户向上移动Recyclerview时,岛屿的图像尺寸减小,然后最终折叠到工具栏中。
这是展开时的样子:
这就是折叠时的样子:
现在,你可以看到,当它被展开时,心脏图标是重复的(一次在FAB中,一次在工具栏中。我只希望当FAB不再可见时,心脏图标出现在工具栏中,否则,我觉得当屏幕上有两个完全相同的按钮时,用户会感到困惑。
当collapsingToolBarLayout完全折叠时,如何才能在工具栏上显示心形图标?我试图寻找某种类型的onCollapse监听器,但没有运气。
这是xml的代码:
<android.support.design.widget.AppBarLayout
android:layout_height="192dp"
android:id="@+id/appbar"
android:layout_width="match_parent">
<!-- android:fitsSystemWindows="true"-->
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginStart="16dp"
app:expandedTitleMarginEnd="32dp">
<ImageView
android:id="@+id/backdrop"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:fitsSystemWindows="true"
android:src="@drawable/ocean395"
app:layout_collapseMode="pin" />
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:minHeight="?attr/actionBarSize"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
答案 0 :(得分:1)
嘿,你可以像这样添加听众
AppBarLayout appBarLayout = (AppBarLayout)view.findViewById(R.id.app_bar_layout);
appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
@Override
public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
if (Math.abs(verticalOffset) == appBarLayout.getTotalScrollRange()) {
// Collapsed (make button visible and fab invisible)
} else if (verticalOffset == 0) {
// Expanded (make fab visible and toolbar button invisible)
} else {
// Somewhere in between
}
}
}););