📅  最后修改于: 2023-12-03 15:38:12.691000             🧑  作者: Mango
FadingActionBar 是一款 Android 库,可以让应用的 ActionBar 在向下滚动时逐渐消失。这款库使得我们开发出更加具有现代感的应用,同时也可以提高用户体验。
dependencies {
compile 'com.github.astuetz:viewpager.extensions:1.0.0'
}
在需要使用 FadingActionBar 的布局文件中,添加 FadingActionBar 的容器:
<com.readystatesoftware.systembartint.SystemBarTintManager>
<com.github.johnkil.print.PrintView>
<com.readystatesoftware.systembartint.SystemBarTintManager>
<!-- 这里是 FadingActionBar 容器 -->
<com.github.chrisbanes.actionbarcompat.FadingActionBarView>
<!-- 在这里添加你的布局 -->
<RelativeLayout>
</com.github.chrisbanes.actionbarcompat.FadingActionBarView>
</com.readystatesoftware.systembartint.SystemBarTintManager>
</com.github.johnkil.print.PrintView>
</com.readystatesoftware.systembartint.SystemBarTintManager>
这里需要注意:
ActionBar actionBar = getSupportActionBar();
final FadingActionBarHelper helper = new FadingActionBarHelper()
.actionBarBackground(R.drawable.ab_background)
.headerLayout(R.layout.header)
.contentLayout(R.layout.activity_main);
helper.initActionBar(this, actionBar);
使用 ListView 或 RecyclerView 作为滚动容器时,我们可以使用 setOnScrollListener
或实现 onScrollListener
接口来监听滚动事件,并在滚动时改变 ActionBar 透明度。
listView.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// do nothing
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
// 确定透明度
int scrollY = getScrollY(view);
int actionBarHeight = getSupportActionBar().getHeight();
float newAlpha = ((float)scrollY / actionBarHeight);
actionBar.setAlpha(newAlpha);
}
});
当没有使用 ListView 或 RecyclerView 时,我们可以使用如下代码监听 View 的滚动事件:
view.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() {
@Override
public void onScrollChanged() {
// 确定透明度
int scrollY = getScrollY(view);
int actionBarHeight = getSupportActionBar().getHeight();
float newAlpha = ((float)scrollY / actionBarHeight);
actionBar.setAlpha(newAlpha);
}
});
完整代码示例可在 GitHub 上获取:https://github.com/chrisbanes/cheesesquare。
FadingActionBar 是一款很不错的库,可以让我们的应用看起来更加现代化,同时也可以提高用户体验。如果你正在开发一款 Android 应用,不妨尝试一下 FadingActionBar。