1,actionBar 隐藏 title 和icon 能够经过代码设置也能够经过主题设置,另外若是要用logo代替icon ,须要设置ShowHomeEnabled为true;html
2,关于设置CustomView , customview所处的actionBar容器实际上是一个LinearLayout容器, 并设置了 clipToBounds 属性,因此customView的长度最长是actionBar的长度减去 backArrow、logo(或icon)等的长度,即便customview的长度设置的很长;若是customView较小的话,能够设置其layout_gravity。默认是center;java
3,设置HomeAsUpEnabled 为true 能够显示backArrow, 点击backArrow 默认没有返回事件,须要在其activity声明中加入 parentActivity属性 或 实现 android
getSupportParentActivityIntent() 和 onCreateSupportNavigateUpTaskStack()方法,参考:ide
http://developer.android.com/guide/topics/ui/actionbar.html#Adding ui
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ActionBar actionBar = getActionBar(); //如何隐藏ActionBar的标题栏部分 //方法1 //actonBar.setDisplayOptions(0,ActionBar.DISPLAY_SHOW_HOME|ActionBar.DISPLAY_SHOW_TITLE ); actionBar.setDisplayShowTitleEnabled(false); //actionBar.setDisplayShowHomeEnabled(false); //display logo if any instead of icon actionBar.setDisplayShowHomeEnabled(true); actionBar.setDisplayUseLogoEnabled(true); //show back arrow actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setDisplayShowCustomEnabled(true); actionBar.setCustomView(R.layout.include_top_bar); }
同时设置 Activity 的actionBarOverlay 和 fitsSystemWindows 时,contentView 的topPadding 同时加上statusBar的高度 和 ActionBar的高度, 这应该是个系统bug, 按理ActionBar是浮层了,不该该加上ActionBar的高度了。spa
解决办法就是不设置 fitsSystemWindow,若是你设置了 windowTranslucentStatus 使状态栏透明了, 那么在你的content view layout中 加上适当的topPadding 就能够了不被status bar 遮挡内容了(其实没必要要, 由于status bar 已经透明了)code