如上图所示,谷歌地图的actionbar是透明的,且浮动在整个布局之上,没有占用布局空间。其实要做到这样的效果,我们首先想到的是两个方面:
1.将让actionbar浮动起来。
2.给actionbar一个背景,可以为颜色也可以为图片。
下面我以背景色为颜色举个例子。getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
ActionBar actionBar = getActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#330000ff")));
google的actionbar是分为上下两栏显示的,上面的代码只能设置顶部actionbar的背景色,为了让下面的背景色一致,还需要添加一行代码:actionBar.setSplitBackgroundDrawable(newColorDrawable(Color.parseColor("#330000ff")));
如果我们不想在代码中设置actionbar背景,而是在style中修改xml,可以自定义actionbar,然后设置下面三个属性:
@drawable/ab_stacked_solid_inverse_holo
#346c36
@drawable/ab_stacked_solid_inverse_holo
其中的background和setBackgroundDrawable对应,backgroundSplit和setSplitBackgroundDrawable对应,而backgroundStacked代表的是actionbar选项卡的背景色。
但是actionbar的背景如果设置为纯色,或者为不透明的图片,那么上面的方法无法使actionbar达到透明的效果。注意上面的代码中,我们的颜色值并不是纯色的而是有一定的透明度。#330000ff的前两位代表透明度。