@Override public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) { //toolbar被折叠时显示状态栏 if (Math.abs(verticalOffset) > collapsingToolbarLayout.getScrimVisibleHeightTrigger()) { if (appBarLayoutState != COLLAPSED) { appBarLayoutState = COLLAPSED;//修改状态标记为折叠 setStatusBarColor(activity, statusColor); } } else { //toolbar显示时同时显示状态栏 if (appBarLayoutState != EXPANDED) { appBarLayoutState = EXPANDED;//修改状态标记为展开 translucentStatusBar(activity, true); } } } });
@Override public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) { //toolbar被折叠时显示状态栏 if (Math.abs(verticalOffset) > collapsingToolbarLayout.getScrimVisibleHeightTrigger()) { if (appBarLayoutState != COLLAPSED) { appBarLayoutState = COLLAPSED;//修改状态标记为折叠 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { activity.getWindow().setBackgroundDrawableResource(android.R.color.transparent); activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); activity.getWindow().setStatusBarColor(statusBarColor); } else setStatusBarColor(activity, statusBarColor); } } else { //toolbar显示时同时显示状态栏 if (appBarLayoutState != EXPANDED) { appBarLayoutState = EXPANDED;//修改状态标记为展开 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE); } translucentStatusBar(activity, true); } } } });
@Override public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) { if (Math.abs(verticalOffset) > appBarLayout.getHeight() - collapsingToolbarLayout.getScrimVisibleHeightTrigger()) { //toolbar被折叠时显示状态栏 if (statusView.getAlpha() == 0) { statusView.animate().cancel(); statusView.animate().alpha(1f).setDuration(collapsingToolbarLayout.getScrimAnimationDuration()).start(); } } else { //toolbar展开时显示状态栏 if (statusView.getAlpha() == 1) { statusView.animate().cancel(); statusView.animate().alpha(0f).setDuration(collapsingToolbarLayout.getScrimAnimationDuration()).start(); } } } });
@NonNull @Override public List<ViewAttribute> collect(CollapsingToolbarLayout view, AttributeTranslator attributeTranslator) { List<ViewAttribute> attributes = new ArrayList<>(); attributes.add(new ViewAttribute<>("Title", view.getTitle())); attributes.add(new ViewAttribute<>("TitleEnabled", view.isTitleEnabled())); attributes.add(new ViewAttribute<>("TitleGravityCollapsed", new GravityValue(view.getCollapsedTitleGravity()))); attributes.add(new ViewAttribute<>("TitleTypefaceCollapsed", new TypefaceValue(view.getCollapsedTitleTypeface()))); attributes.add(new ViewAttribute<>("TitleGravityExpanded", new GravityValue(view.getExpandedTitleGravity()))); attributes.add(new ViewAttribute<>("TitleTypefaceExpanded", new TypefaceValue(view.getExpandedTitleTypeface()))); attributes.add(new ViewAttribute<>("TitleMarginStartExpanded", attributeTranslator.translatePx(view.getExpandedTitleMarginStart()))); attributes.add(new ViewAttribute<>("TitleMarginTopExpanded", attributeTranslator.translatePx(view.getExpandedTitleMarginTop()))); attributes.add(new ViewAttribute<>("TitleMarginEndExpanded", attributeTranslator.translatePx(view.getExpandedTitleMarginEnd()))); attributes.add(new ViewAttribute<>("TitleMarginBottomExpanded", attributeTranslator.translatePx(view.getExpandedTitleMarginBottom()))); attributes.add(new ViewAttribute<>("ScrimVisibleHeightTrigger", view.getScrimVisibleHeightTrigger())); attributes.add(new ViewAttribute<>("ScrimAnimationDuration", view.getScrimAnimationDuration())); attributes.add(new ViewAttribute<Void>("ContentScrim", view.getContentScrim())); attributes.add(new ViewAttribute<Void>("StatusBarScrim", view.getStatusBarScrim())); return attributes; } }
if (behavior != null && behavior instanceof AppBarLayout.Behavior) { int verticalOffset = ((AppBarLayout.Behavior) behavior).getTopAndBottomOffset(); if (Math.abs(verticalOffset) > appBarLayout.getHeight() - collapsingToolbarLayout.getScrimVisibleHeightTrigger()) { statusView.setAlpha(1f); } else {
if (behavior != null && behavior instanceof AppBarLayout.Behavior) { int verticalOffset = ((AppBarLayout.Behavior) behavior).getTopAndBottomOffset(); if (Math.abs(verticalOffset) > appBarLayout.getHeight() - collapsingToolbarLayout.getScrimVisibleHeightTrigger()) { statusView.setAlpha(1f); } else {
@Override public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) { //toolbar被折叠时显示状态栏 if (Math.abs(verticalOffset) > collapsingToolbarLayout.getScrimVisibleHeightTrigger()) { if (appBarLayoutState != COLLAPSED) { appBarLayoutState = COLLAPSED;//修改状态标记为折叠 setStatusBarColor(activity, statusColor); } } else { //toolbar显示时同时显示状态栏 if (appBarLayoutState != EXPANDED) { appBarLayoutState = EXPANDED;//修改状态标记为展开 translucentStatusBar(activity, true); } } } });
@Override public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) { //toolbar被折叠时显示状态栏 if (Math.abs(verticalOffset) > collapsingToolbarLayout.getScrimVisibleHeightTrigger()) { if (appBarLayoutState != COLLAPSED) { appBarLayoutState = COLLAPSED;//修改状态标记为折叠 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { activity.getWindow().setBackgroundDrawableResource(android.R.color.transparent); activity.getWindow().getDecorView().setSystemUiVisibility(View .SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); activity.getWindow().setStatusBarColor(statusBarColor); } else setStatusBarColor(activity, statusBarColor); } } else { //toolbar显示时同时显示状态栏 if (appBarLayoutState != EXPANDED) { appBarLayoutState = EXPANDED;//修改状态标记为展开 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { activity.getWindow().getDecorView().setSystemUiVisibility(View .SYSTEM_UI_FLAG_LAYOUT_STABLE); } translucentStatusBar(activity, true); } } } });
@Override public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) { //toolbar被折叠时显示状态栏 if (Math.abs(verticalOffset) > collapsingToolbarLayout.getScrimVisibleHeightTrigger()) { if (appBarLayoutState != COLLAPSED) { appBarLayoutState = COLLAPSED;//修改状态标记为折叠 setStatusBarColor(activity, statusColor); } } else { //toolbar显示时同时显示状态栏 if (appBarLayoutState != EXPANDED) { appBarLayoutState = EXPANDED;//修改状态标记为展开 translucentStatusBar(activity, true); } } } });
@Override public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) { //toolbar被折叠时显示状态栏 if (Math.abs(verticalOffset) > collapsingToolbarLayout.getScrimVisibleHeightTrigger()) { if (appBarLayoutState != COLLAPSED) { appBarLayoutState = COLLAPSED;//修改状态标记为折叠 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { activity.getWindow().setBackgroundDrawableResource(android.R.color.transparent); activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); activity.getWindow().setStatusBarColor(statusBarColor); } else setStatusBarColor(activity, statusBarColor); } } else { //toolbar显示时同时显示状态栏 if (appBarLayoutState != EXPANDED) { appBarLayoutState = EXPANDED;//修改状态标记为展开 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE); } translucentStatusBar(activity, true); } } } });
@Override public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) { if (Math.abs(verticalOffset) > appBarLayout.getHeight() - collapsingToolbarLayout.getScrimVisibleHeightTrigger()) { //toolbar被折叠时显示状态栏 if (statusView.getAlpha() == 0) { statusView.animate().cancel(); statusView.animate().alpha(1f).setDuration(collapsingToolbarLayout.getScrimAnimationDuration()).start(); } } else { //toolbar展开时显示状态栏 if (statusView.getAlpha() == 1) { statusView.animate().cancel(); statusView.animate().alpha(0f).setDuration(collapsingToolbarLayout.getScrimAnimationDuration()).start(); } } } });
@Override public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) { if (Math.abs(verticalOffset) > appBarLayout.getHeight() - collapsingToolbarLayout .getScrimVisibleHeightTrigger()) { //toolbar被折叠时显示状态栏 if (statusView.getAlpha() == 0) { statusView.animate().cancel(); statusView.animate().alpha(1f).setDuration(collapsingToolbarLayout.getScrimAnimationDuration ()).start(); } } else { //toolbar展开时显示状态栏 if (statusView.getAlpha() == 1) { statusView.animate().cancel(); statusView.animate().alpha(0f).setDuration(collapsingToolbarLayout.getScrimAnimationDuration ()).start(); } } } });
@Override protected HashMap<String, Object> fillValues(View v, HashMap<String, Object> data, HashMap<String, Object> parentData) { super.fillValues(v, data, parentData); CollapsingToolbarLayout view = (CollapsingToolbarLayout) v; data.put("CollapsedTitleGravity", getTranslator().gravity(view.getCollapsedTitleGravity())); data.put("CollapsedTitleTypeface:", view.getCollapsedTitleTypeface()); data.put("ContentScrim:", view.getContentScrim()); data.put("CollapsedTitleGravity", getTranslator().gravity(view.getExpandedTitleGravity())); data.put("ExpandedTitleMarginBottom", view.getExpandedTitleMarginBottom()); data.put("ExpandedTitleMarginEnd", view.getExpandedTitleMarginEnd()); data.put("ExpandedTitleMarginStart", view.getExpandedTitleMarginStart()); data.put("ExpandedTitleMarginTop", view.getExpandedTitleMarginTop()); data.put("ExpandedTitleTypeface:", view.getExpandedTitleTypeface()); data.put("ScrimAnimationDuration", view.getScrimAnimationDuration()); data.put("ScrimVisibleHeightTrigger", view.getScrimVisibleHeightTrigger()); data.put("StatusBarScrim:", view.getStatusBarScrim()); data.put("Title", view.getTitle()); data.put("IsTitleEnabled", view.isTitleEnabled()); return data; } }
@Override public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) { if (Math.abs(verticalOffset) > appBarLayout.getHeight() - collapsingToolbarLayout.getScrimVisibleHeightTrigger()) { if (window.getStatusBarColor() != statusColor) { startColorAnimation(window.getStatusBarColor(), statusColor, collapsingToolbarLayout.getScrimAnimationDuration(), window); } } else { if (window.getStatusBarColor() != Color.TRANSPARENT) { startColorAnimation(window.getStatusBarColor(), Color.TRANSPARENT, collapsingToolbarLayout.getScrimAnimationDuration(), window); } } } });
if (behavior != null && behavior instanceof AppBarLayout.Behavior) { int verticalOffset = ((AppBarLayout.Behavior) behavior).getTopAndBottomOffset(); if (Math.abs(verticalOffset) > appBarLayout.getHeight() - collapsingToolbarLayout.getScrimVisibleHeightTrigger()) { window.setStatusBarColor(statusColor); } else {
int verticalOffset = ((AppBarLayout.Behavior) behavior).getTopAndBottomOffset(); if (Math.abs(verticalOffset) > appBarLayout.getHeight() - collapsingToolbarLayout .getScrimVisibleHeightTrigger()) { statusView.setAlpha(1f); } else {
if (behavior != null && behavior instanceof AppBarLayout.Behavior) { int verticalOffset = ((AppBarLayout.Behavior) behavior).getTopAndBottomOffset(); if (Math.abs(verticalOffset) > appBarLayout.getHeight() - collapsingToolbarLayout.getScrimVisibleHeightTrigger()) { statusView.setAlpha(1f); } else {
if (behavior != null && behavior instanceof AppBarLayout.Behavior) { int verticalOffset = ((AppBarLayout.Behavior) behavior).getTopAndBottomOffset(); if (Math.abs(verticalOffset) > appBarLayout.getHeight() - collapsingToolbarLayout.getScrimVisibleHeightTrigger()) { statusView.setAlpha(1f); } else {
if (behavior != null && behavior instanceof AppBarLayout.Behavior) { int verticalOffset = ((AppBarLayout.Behavior) behavior).getTopAndBottomOffset(); if (Math.abs(verticalOffset) > appBarLayout.getHeight() - collapsingToolbarLayout.getScrimVisibleHeightTrigger()) { statusView.setAlpha(1f); } else {
int verticalOffset = ((AppBarLayout.Behavior) behavior).getTopAndBottomOffset(); if (Math.abs(verticalOffset) > appBarLayout.getHeight() - collapsingToolbarLayout .getScrimVisibleHeightTrigger()) { statusView.setAlpha(1f); } else {