ActionBar中,menu 一些细节!

在ActionBar中,即便设置showAsAction="always",items仍然在overflow中显示的问题

今天很是苦恼,明明设置了android:showAsAction="always",但是所有的items全部都显示在overflow中,然后在官网发现了答案。

如果你为了兼容 Android 2.1 的版本使用了 Support 库,在 android 命名空间下showAsAction 属性是不可用的。Support 库会提供替代它的属性,你必须声明自己的 XML 命名空间,并且使用该命名空间作为属性前缀。(一个自定义 XML 命名空间需要以你的 app 名称为基础,但是可以取任何你想要的名称,它的作用域仅仅在你声明的文件之内。)

添加此命名空间 xmlns:app="http://schemas.android.com/apk/res-auto" ,使用app:showAsAction代替android:showAsAction。

例如:


<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    >

    <item
        android:id="@+id/action_search"
        android:icon="@drawable/peasy"
        app:showAsAction="always"
        android:title="@string/action_search"/>
    
    <!-- 设置, 在溢出菜单中展示 -->
    <item
        android:id="@+id/action_settings"
        android:showAsAction="never"
        android:title="@string/action_settings"/>
    <item
        android:id="@+id/action_about"
        app:showAsAction="never"
        android:title="@string/action_about"/>

</menu>


另外,意外发现在actionBar只显示了icon但是没有显示title

如果同时设置了icon和title,默认只会显示icon。

 如果想同时显示title和icon,可以加入app:showAsAction="always|withText",但是即便这样也不会一定生效,withText对actionBar的title来说只是一个hint,在条件允许的情况下actionBar会显示title,但是当设置了icon并由于空间限制也不会显示title。

不过,官方还是建议我们设置title的,在长按icon的情况下title就会出现,另外官方还建议showAsAction最好设置为ifRoom,如果设置为always可能会在比较窄的屏幕上带来布局的问题。有时可能限制于空间的原因,竖屏时,设置app:showAsAction=always|withText",只能显示icon,但是横屏时,两个都能显示出来了,暂时未找到解决竖屏的问题



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值