在CollapsingToolbarLayout中设置属性app:expandedTitleGravity="center"和app:collapsedTitleGravity="center",以确保标题能够正确居中显示。
通过设置一个自定义的toolbar布局来解决这一问题,代码示例:
在布局文件中:
在代码中:
mToolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(mToolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true);
mCollapsingToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar); mCollapsingToolbarLayout.setTitle("Title"); mCollapsingToolbarLayout.setExpandedTitleColor(Color.TRANSPARENT); mCollapsingToolbarLayout.setCollapsedTitleTextColor(Color.WHITE);
mAppBarLayout = (AppBarLayout) findViewById(R.id.appbar); mAppBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() { int scrollRange = -1;
@Override
public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
if (scrollRange == -1) {
scrollRange = appBarLayout.getTotalScrollRange();
}
if (scrollRange + verticalOffset == 0) {
mCollapsingToolbarLayout.setTitle("CollapsedTitle");
} else {
mCollapsingToolbarLayout.setTitle("");
}
}
});
这样就可以实现当操作按钮存在时收起