ActionBar使用中的一些问题

最近开始用ActionBar,在适配的过程中找了很多资料,结果仍有问题。
关于很简单标题、副标题以及返回键就不在这里叙说,百度一下你就知道。

说一下我的版本,使用了v7包,Activity继承自AppCompatActivity
1.ActionBar获取为null
出现这个问题是因为在AppCompatActivity中的actionBar已经改名字叫supportActionBar了,所以获取要getSupportActionBar()
2.引用主题
你需要引用一个带ActionBar的主题,如果你觉得麻烦可以引用到父类,
比如parent=”Theme.AppCompat.Light”
其中
状态栏底色:@color/colorAccent
actionBar底色:@color/colorAccent
上述两个属性如果是android:开头则应用无效

按钮底色:
button组建的默认背景色
@color/colorButtonNormal
文字和菜单折叠
@color/textColorPrimary
底部状态栏的底色
@color/navigationBarColor
一般控件的选种效果默认采用该颜色
@color/colorAccent
上述常用属性如果不加android:编译时会报错,需要注意

3.logo设置
按照网上说的方法在AndroidManifest中设置的logo/icon,在使用v7包时不起作用,要生效必须在代码中设置:
actionBar.setLogo(R.mipmap.setting)
actionBar.setDisplayUseLogoEnabled(true)
actionBar.setDisplayShowHomeEnabled(true)
后面两个boolean参数的设置项必须全设置,少一个logo都显示不出来

4.menu
你可能会说我设置actionbar关menu什么事,actionbar除了logo,返回键和title右侧部分全是menu
所以要设置这个首先你得自己写个menu文件放在res目录下
然后重写activity的onCreateOptionsMenu方法,用于设置menu
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.menu_1,menu)
return true
}
然后重写activity的onOptionsItemSelected方法,实现监听
此监听中出了menu中的id还可以对id为android.R.id.home的左侧返回键做监听,icon的点击事件在此方法中获取不到,我最后也没找到添加电机的方法,所以如果title旁边要求有两个可点击按钮用actionbar就不很合适了。

5.menu Option
主要是通过style对option的位置和overflow图标变更
ActionBar中OptionMenu的显示以前是显示在overflow的下面,5.0以后显示的位置直接覆盖了overflow图标,通过在values-v21style中增加以下内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值