andorid actionBar
博客专区 > lightUp 的博客 > 博客详情
andorid actionBar
lightUp 发表于2年前
andorid actionBar
  • 发表于 2年前
  • 阅读 58
  • 收藏 4
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   


1,actionBar 隐藏 title 和icon 可以通过代码设置也可以通过主题设置,另外如果要用logo代替icon ,需要设置ShowHomeEnabled为true;

2,关于设置CustomView , customview所处的actionBar容器其实是一个LinearLayout容器, 并设置了 clipToBounds 属性,所以customView的长度最长是actionBar的长度减去 backArrow、logo(或icon)等的长度,即使customview的长度设置的很长;如果customView较小的话,可以设置其layout_gravity。默认是center;

3,设置HomeAsUpEnabled 为true 可以显示backArrow, 点击backArrow 默认没有返回事件,需要在其activity声明中加入 parentActivity属性 或 实现 

getSupportParentActivityIntent() 和 onCreateSupportNavigateUpTaskStack()方法,参考:

http://developer.android.com/guide/topics/ui/actionbar.html#Adding


@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的高度了。

解决办法就是不设置  fitsSystemWindow,如果你设置了 windowTranslucentStatus 使状态栏透明了, 那么在你的content view layout中 加上适当的topPadding 就可以了不被status bar 遮挡内容了(其实不必要, 因为status bar 已经透明了)




共有 人打赏支持
粉丝 11
博文 132
码字总数 287936
×
lightUp
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: