andorid actionBar


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 时 

同时设置 Activity 的actionBarOverlay 和 fitsSystemWindows 时,contentView 的topPadding 同时加上statusBar的高度 和 ActionBar的高度, 这应该是个系统bug, 按理ActionBar是浮层了,不该该加上ActionBar的高度了。spa

解决办法就是不设置  fitsSystemWindow,若是你设置了 windowTranslucentStatus 使状态栏透明了, 那么在你的content view layout中 加上适当的topPadding 就能够了不被status bar 遮挡内容了(其实没必要要, 由于status bar 已经透明了)code


相关文章
相关标签/搜索