github项目学习:Context-Menu.Android

看图看效果,Context-Menu.Android在github上是一个比较火的项目,而且实现效果也也比较简单,仅需几部就可以实现一个优雅的动态菜单。这一部分讲解一下怎么在androidStudio怎么实现。
Context-Menu.Android效果展示

配置

先奉上github的链接。戳戳戳

复制组件的代码到自己项目的gradle中,然后点击同步。【注意。是自己的app的gradle中,不是工程名的那一个gradle中。】
github中找到组建的代码
androidStudio中的组建方式

使用

同步完成之后,我们可以在我们自己的工程中使用这个菜单组件了。

申明全局组件

1
2
private ContextMenuDialogFragment contextMenuDialogFragment;
private FragmentManager fragmentManager;

创建菜单项的组件

创建MenuList

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
ArrayList<MenuObject> menuObjects = new ArrayList<>();
MenuObject close = new MenuObject();
close.setResource(R.drawable.icn_close);
MenuObject icn1 = new MenuObject("icn1");
icn1.setResource(R.drawable.icn_1);
MenuObject icn2 = new MenuObject("icn2");
icn2.setResource(R.drawable.icn_2);
icn2.setBgColor(Color.parseColor("#000000"));
MenuObject icn3 = new MenuObject("icn3");
icn3.setColor(Color.parseColor("#0000ff"));
menuObjects.add(close);
menuObjects.add(icn1);
menuObjects.add(icn2);
menuObjects.add(icn3);

对菜单子项进行配置

1
2
3
4
5
6
7
8
//1 创建菜单组件
MenuParams menuParams = new MenuParams();
//2 将子项组件加入
menuParams.setMenuObjects(menuObjects);
//3 点击空白地区可以取消关闭菜单
menuParams.setClosableOutside(true);
//4 设置每个菜单子项的大小
menuParams.setActionBarSize(200);

根据官方文档,我们可以通过多种方式对菜单子项进行配置

1
2
3
4
item.setResource(...)
item.setBitmap(...)
item.setDrawable(...)
item.setColor(...)

对ContextMenuDialogFragment进行实例化

1
2
3
4
5
6
//设置实例化
contextMenuDialogFragment = ContextMenuDialogFragment.newInstance(menuParams);
//打开OnClick方法
contextMenuDialogFragment.setItemClickListener(this);
//打开LongOnClick方法
contextMenuDialogFragment.setItemLongClickListener(this);

注意,在打开OnClick和LongOnClick的时候,需要添加接口。Alt+Enter即可。
引用OnClick接口

设置打开ContextMenuDialogFragment的菜单按钮

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.context_menu:
contextMenuDialogFragment.show(fragmentManager, "ContextMenuDialogFragment");
break;
}
return super.onOptionsItemSelected(item);
}

注:需要再res/menu/menu_main.xml中配置一下菜单项。

1
2
3
4
5
6
<item
android:id="@+id/context_menu"
android:title="Context menu"
android:icon="@drawable/btn_add"
android:orderInCategory="100"
app:showAsAction="always" />

实现onItemClick方法

1
2
3
4
5
@Override
public void onMenuItemClick(View clickedView, int position) {
//根据position实现自己的方法
Log.e("bili",position+" OK");
}

这样我们就实现最基本的Context-Menu.Android的配置使用。
毕竟开源的代码,我们也可以根据自己的需要,然后定制自己的功能。

然后奉上自己的实力代码块。
给你看个宝贝

如果文章对您有用请随意打赏,谢谢支持!