ActionItemBadge:在actionbar上显示badge数字提示
RichardUmf
9年前
介绍:
一个方便你让你在actionbar上显示数字提示的库(这种效果称为badge )。其实现原理是利用了menu菜单资源文件属性actionLayout
运行效果:
使用说明:
按照正常方式创建一个menu.xml ,同事需要添加actionLayout
,为了总是让这个菜单项显示出来,添加上showAsAction=
"always"
。
1 2 3 4 5 </td> | <item android:id= "@+id/item_samplebadge" android:actionLayout= "@layout/menu_badge" android:showAsAction= "always" android:title= "@string/sample_1" /> | </tr> </tbody> </table> </div> </div>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 </td> | @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 ; } | </tr> </tbody> </table> </div> </div>
1 2 3 4 5 6 7 8 9 10 11 12 13 </td> | @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); } | </tr> </tbody> </table> </div> </div>