图书管理系统系统需求规格说明书
时间: 2023-09-13 16:11:30 浏览: 105
软件需求规格说明书_在线图书管理系统
4星 · 用户满意度95%
CollapsingToolbarLayout是一个很强大的控件,可以实现很多的效果,但是它默认的动画可能无法满足你的需求,这时候你可以自定义动画来实现你想要的效果。
首先,我们需要知道CollapsingToolbarLayout默认的动画是什么。当我们向上滑动屏幕时,CollapsingToolbarLayout会收缩,并且Toolbar会变成缩小后的状态;当我们向下滑动屏幕时,CollapsingToolbarLayout会展开,并且Toolbar会变成展开后的状态。
接下来,我们来实现自定义动画。以向上滑动屏幕时Toolbar变成透明为例,我们需要做以下步骤:
1. 在xml中设置CollapsingToolbarLayout的监听器。
```
<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:title="Title"
app:expandedTitleMarginStart="48dp"
app:expandedTitleMarginEnd="64dp"
app:contentScrim="?attr/colorPrimary"
app:statusBarScrim="?attr/colorPrimaryDark"
app:expandedTitleTextAppearance="@style/ExpandedAppBar">
<ImageView
android:id="@+id/iv_header"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/header"
app:layout_collapseMode="parallax" />
<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>
```
```
CollapsingToolbarLayout collapsingToolbar = findViewById(R.id.collapsing_toolbar);
collapsingToolbar.setContentScrimColor(Color.TRANSPARENT);
collapsingToolbar.setStatusBarScrimColor(Color.TRANSPARENT);
collapsingToolbar.setCollapsedTitleTextColor(Color.WHITE);
collapsingToolbar.setExpandedTitleColor(Color.WHITE);
collapsingToolbar.setExpandedTitleMarginBottom(150);
collapsingToolbar.setExpandedTitleMarginStart(50);
collapsingToolbar.setExpandedTitleMarginEnd(50);
collapsingToolbar.setOnScrimsListener(new CollapsingToolbarLayout.OnScrimsListener() {
@Override
public void onScrimsStateChange(CollapsingToolbarLayout layout, boolean shown) {
if (shown) {
// Toolbar展开时的操作
toolbar.setBackgroundColor(ContextCompat.getColor(getApplicationContext(), R.color.colorPrimary));
} else {
// Toolbar收缩时的操作
toolbar.setBackgroundColor(ContextCompat.getColor(getApplicationContext(), android.R.color.transparent));
}
}
});
```
2. 在监听器中设置Toolbar的背景色。
```
toolbar.setBackgroundColor(ContextCompat.getColor(getApplicationContext(), android.R.color.transparent));
```
这样,我们就实现了自定义动画,Toolbar在向上滑动时变成透明。当然,你也可以根据自己的需求设置其他的动画效果。
阅读全文