在我的活动中,我做了:
setSupportActionBar(toolbar);
其中toolbar是android.support.v7.widget.Toolbar的实例
之后有什么方法可以隐藏并以编程方式显示工具栏小部件吗?我已经尝试了
toolbar.setVisibility(View.INVISIBLE);
但是这只会让它看不见而且它仍然需要空间,所以活动的内容在它之后开始,我在标题中看到了空格。
答案 0 :(得分:21)
INVISIBLE
仅隐藏视图。
GONE
会隐藏视图并阻止它占用任何空间。
toolbar.setVisibility(View.GONE);
答案 1 :(得分:6)
如果您的工具栏在AppBarLayout中,那么您可以使用AppBarLayout的 setExpanded 方法展开和折叠带或不带动画的工具栏。
setExpanded(boolean expanded, boolean animate)
此方法可从支持库的v23开始。
从documentation开始参考。
与AppBarLayout滚动一样,此方法依赖于此布局是CoordinatorLayout的直接子项。
展开: true 如果布局应该完全展开, false 如果它应该完全展开
animate:是否动画到新状态
AppBarLayout appBarLayout = (AppBarLayout)findViewById(R.id.appBar);
使用动画展开工具栏。
appBarLayout.setExpanded(true, true);
用动画折叠工具栏。
appBarLayout.setExpanded(false, true);
答案 2 :(得分:0)
这是我的代码试试这个。它对我来说很完美。
private static final float APPBAR_ELEVATION = 14f;
private void hideAppBar(final AppBarLayout appBar) {
appBar.animate().translationY(-appBar.getHeight()).setInterpolator(new LinearInterpolator()).setDuration(500);
}
public void showAppBar(final AppBarLayout appBar){
appBar.animate().translationY(0).setInterpolator(new LinearInterpolator()).setDuration(500).setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
appBar.setElevation(APPBAR_ELEVATION);
}
});
}
希望这可以帮到你