资源说明:今天的几个目标:
1. 自定义ActionProvider
2. Toolbar ActionBar自定义Menu
3. Toolbar ActionBar 右侧Menu添加角标(Toolbar ActionBar Menu添加小红点)
源代码在文章末尾。
——————————————————————————–
效果预览
自定义Menu后不影响原生MD的任何效果。可以通过外部来控制显示的文字和颜色等属性。
需求描述与分析
通常我们会自定义Titlebar,可以实现很多自定义的效果。但是后来Toolbar出来后实在太好用了,于是乎我们都使用了Toolbar但是我们要给右侧的Menu B
在Android开发中,有时我们需要对应用的界面进行个性化定制,以满足特定的需求。今天我们将讨论如何在Android中自定义ActionProvider并将其应用于ToolBar的Menu,同时实现右侧Menu按钮上的小红点角标。这个功能常见于通知未读状态的显示,增加用户界面的交互性。
我们的目标是:
1. 创建自定义ActionProvider
2. 配置ToolBar的ActionBar自定义Menu
3. 在ToolBar的右侧Menu项添加小红点角标
在Android中,我们通常使用menu.xml文件定义菜单项,但为了实现带有小红点的自定义效果,我们需要利用`android:actionProviderClass`属性来自定义Menu的内容。ActionProvider是一个接口,允许我们在菜单项上显示更复杂的视图。在这种情况下,我们可以创建一个新的类,继承自`ActionProvider`,并重写必要的方法来实现我们的需求。
我们要使用的是`android.support.v4.view.ActionProvider`,因为它兼容Toolbar和ActionBar。创建一个名为`BadgeActionProvider`的类,如下所示:
```java
public class BadgeActionProvider extends ActionProvider {
public BadgeActionProvider(Context context) {
super(context);
}
@Override
public View onCreateActionView() {
// 这里返回我们的自定义布局
return view;
}
}
```
接下来,我们需要创建一个自定义布局,用于显示小红点和图标。在res/layout目录下创建一个XML文件,例如`badge_view.xml`:
```xml
```
在上面的布局中,我们创建了一个RelativeLayou
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。