这里是做个了动态的菜单(配合某CoordinatorLayout的滑动做的)
private boolean isVisibleForMenu =true;//标志位,决定是否显示菜单
/**
* 设置菜单根据滚动动态显示和隐藏
*/
private void setDynamicMenu(){
appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
@Override
public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
if ((Math.abs(verticalOffset)+10 >= appBarLayout.getTotalScrollRange())){
//滑动到顶了,这个时候应该取消右上角菜单的按钮显示
isVisibleForMenu =false;
invalidateOptionsMenu();
}else {
if(!isVisibleForMenu){
isVisibleForMenu =true;
invalidateOptionsMenu();
}
}
}
});
}
// /**
// * 动态创建个菜单选项
// */
// @Override
// public boolean onPrepareOptionsMenu(Menu menu) {
// menu.clear();//清除下菜单才行,不然会出现很多个
// if (isVisibleForMenu){
// getMenuInflater().inflate(R.menu.option,menu);
// return true;
//
// }else {
// return super.onPrepareOptionsMenu(menu);
// }
// }