您的位置:首页 > 其它

自定义透明背景的Actionbar

2015-06-14 12:33 363 查看
想做一个ActionBar背景透明的效果,找了很多资料发现都没有实际用途,但最终还是实现了。效果图



首先是自定义一个Actionbar的style

<style name="AppTheme.ActionBarStyle" parent="android:Widget.ActionBar">
<!-- 半透明背景,需要开启actionbar悬浮 -->
<item name="android:background">@drawable/titlebar_bg</item>
<item name="android:height">55dp</item>
</style>


在app主题中调用它AppTheme,就是我们应用于Activity的style

<style name="AppTheme" parent="android:Theme.Holo">
<item name="android:windowBackground">@color/transparent</item>
<!-- 左上角的返回箭头替换 -->
<item name="android:homeAsUpIndicator">@drawable/ic_home_back</item>
<item name="android:actionBarStyle">@style/AppTheme.ActionBarStyle</item>
</style>


在Activity的onCreate函数中开启悬浮

@Override
public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);                   getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY); //
}


此时Actionbar已经是透明的了,但是会覆盖在布局上方,因此需要空出这块位置

在布局的顶端用透明的View填充这块覆盖的位置,或者调整padding,margin,我还没试过

<View
android:layout_width="match_parent"
android:layout_height="55dp"
android:background="@color/transparent"
android:visibility="visible" />
<View
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:background="#AACDB79E" />


我的根是线性垂直布局,加上这两个View(一块透明,一条线)正好将内容挤下去了,Actionbar的高度是55dp
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: