ActionItemBadge:在actionbar上显示badge数字提示

介绍:

一个方便你让你在actionbar上显示数字提示的库(这种效果称为badge )。其实现原理是利用了menu菜单资源文件属性actionLayout

运行效果:

使用说明:

按照正常方式创建一个menu.xml ,同事需要添加actionLayout,为了总是让这个菜单项显示出来,添加上showAsAction="always"

<item
android:id="@+id/item_samplebadge"
android:actionLayout="@layout/menu_badge"
android:showAsAction="always"
android:title="@string/sample_1"/>

activity中

重写onCreateOptionsMenu

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
//you can add some logic (hide it if the count == 0)
if(badgeCount > 0) {
ActionItemBadge.update(this, menu.findItem(R.id.item_samplebadge), Iconify.IconValue.fa_android, ActionItemBadge.BadgeStyle.DARKGREY, badgeCount);
} else{
ActionItemBadge.hide(menu.findItem(R.id.item_samplebadge));
}
//If you want to add your ActionItem programmatically you can do this too. You do the following:
new ActionItemBadge.Add().act(this).menu(menu).title(R.string.sample_2).itemDetails(0, SAMPLE2_ID, 1).showAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS).build(ActionItemBadge.BadgeStyle.BLUE_LARGE, 1);
return true;
}

如果你想在用户点击菜单项之后重新更新badge显示的数目,那么在onOptionsItemSelected中调用invalidateOptionsMenu方法:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if(id == R.id.item_samplebadge) {
Toast.makeText(this, R.string.sample_3, Toast.LENGTH_SHORT).show();
badgeCount--;
invalidateOptionsMenu();
return true;
} else if(id == SAMPLE2_ID) {
Toast.makeText(this, R.string.sample_4, Toast.LENGTH_SHORT).show();
}
return super.onOptionsItemSelected(item);
}

源码下载:http://jcodecraeer.com/a/opensource/2014/1105/1910.html

时间: 2024-10-11 19:27:07

ActionItemBadge:在actionbar上显示badge数字提示的相关文章

Xamarin Android 应用程序内图标上数字提示

最近在用 Xamarin 做一个 Android 应用,打开应用时,如果有新消息,需要在应用内的 Toolbar 或者首页的图标上显示数字提示.在这里和大家分享一下实现方法,如果你有更新好的实现方法,欢迎分享. 类似推特客户端的新消息提醒 解决思路:把图标和数字提示文本放在 RelativeLayout 或 FrameLayout 内,把文本放在右上角. 实现代码: 新建一个 Xamain Android 项目,打天 Main.axml 文件,首先添加一下 Toolbar,<android.su

在小米 三星 索尼 手机 :图标上显示数字

在小米 三星  索尼 手机 :图标上显示数字(未读消息数):这部分代码,是从QQ5.0.apk中找的. 小米已经测试通过了, 三星和索尼的,由于没有相应的手机,没有测试,有的,可能修改一下代码(判断是什么手机的代码), 测试一下,可以在回复一下测试结果,谢谢 1.原生系统(原生的Launcher ),只能修改快捷方式,增加和删除都会有toast提示 2.小米 三星  索尼 手机: 自定义的launcher:  发送显示未读消息数的action已经不同了.具体可以去看代码... 判断手机的代码:

用BadgeView在actionbar menu上显示提醒信息

有时候需要在actionbar menu上显示消息个数,所以可以用BadgeView来实现. 实现方法是获取actionbar menuitem的view,然后创建BadgeView.注意,通常只能在Optionsmenu创建完成之后去获取menuitem的view.我们可以在onCreate方法中延时1秒去处理. <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="ht

js实例_当鼠标移动到某个元素上时在元素下面显示一段提示文字

效果: 当鼠标不在自动登录上时,只显示自动登录这个表单,下面的div提示则隐藏. 当鼠标移动到自动登录这个表单时,则显示下面的div提示,当鼠标移出时再将其隐藏 代码实现与原理: HTML代码: <body> <input type="checkbox" />自动登录 <div id="div1">不要再玩游戏啦!!!</div> </body> CSS代码:给id为div1的元素做一下修饰,并且将其最开始

代码中设置 actionbar 上home等图标显示跟隐藏

今天在做项目的时候,遇到了一个问题,就是要把home在代码中动态显示跟隐藏.现在把方法记录如下 我们可以使用 setDisplayOptions(mask, mask); 来设置home按钮显示的,它的具体用法如下 (1)如果只有一个参数,那么它就是直接设定显示项, 如, int options = DISPLAY_SHOW_HOME | DISPLAY_USE_LOGO: setDisplayOptions(options); 那么,actionbar就会显示home跟log按钮,也就是,里面

某项目 需要在UITabbar 上显示小红点,在此搜罗了三个方法。

1.使用系统自带的,并且可以在小红点上显示数字. [itemOne setBadgeValue:@""]; //显示不带数字的小红点 [itemOne setBadgeValue:@"1"];//显示小红点 并且带数字 以上的缺点:小红点太大了,伤不起啊! 2.使用图片,创建图片的时候,设置图片的渲染. UIImage * normalImage = [[UIImage imageNamed:@"pic_msg_yes_nor"] imageWi

Android手势识别 Camera 预览界面上显示文字 布局注意事项(merge布局)

通常在Surfaceview作为预览视频帧的载体,有时需在上面显示提示文字.以前我弄的都好好的,今天忽然发现叠加的TextView不管咋弄都出不来文字了,跟Surfaceview一起放在FrameLayout也不行,后来想到merge布局,发现也不行.大爷的,奇了怪了,最后发现了原因,原来是顺序问题.也即无论是在RelativeLayout里还是merge布局里,View是逐个叠加上去的,一层一层铺上去的.如果你先放TextView在最前面,那肯定被后面的全屏Surfaceview覆盖了.用常规

Android Viewbadger 实现消息数字提示

开源组件viewbadger实现消息数字提示,项目地址:https://github.com/jgilfelt/android-viewbadger  (可获得源码)! Author: Jeff Gilfelt The code in this project is licensed under the Apache Software License 2.0. Copyright (c) 2011 readyState Software Ltd. 当然,这里直接是一个jar包,导入就可使用:an

动态改变actionbar上menu的图标

工作中遇到了一个需求是,在滚动的时候让actionbar上的图标进行变色.实现后在这里总结下思路. 一.先在主题中定义好Actionbar的style <style name="AppTheme" parent="BaseTheme"> <item name="actionBarStyle">@style/NAActionBarStyle</item> <item name="actionBar