Context-Menu.Android

介绍:

非常生动的上下文菜单效果,根据dribbble上的概念设计实现的。

运行效果:

使用说明:

创建含有文字与图标的MenuObject对象:

ArrayList<MenuObject> menuObjects = new ArrayList<>();
        menuObjects.add(new MenuObject(R.drawable.icn_close));
        menuObjects.add(new MenuObject(R.drawable.icn_1, "Send message"));
        menuObjects.add(new MenuObject(R.drawable.icn_2, "Like profile"));
        menuObjects.add(new MenuObject(R.drawable.icn_3, "Add to friends"));
        menuObjects.add(new MenuObject(R.drawable.icn_4, "Add to favorites"));
        menuObjects.add(new MenuObject(R.drawable.icn_5, "Block user"));

创建ContextMenuDialogFragment的实例

 mMenuDialogFragment = ContextMenuDialogFragment.newInstance((int) getResources().getDimension(R.dimen.tool_bar_height), menuObjects );

设置打开ContextMenuDialogFragment的菜单按钮:

@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:
                mMenuDialogFragment.show(fragmentManager, "ContextMenuDialogFragment");
                break;
        }
        return super.onOptionsItemSelected(item);
    }

实现ContextMenuDialogFragment.ItemClickListener接口的onItemClick方法

public class MainActivity extends ActionBarActivity implements ContextMenuDialogFragment.ItemClickListener
…
@Override
    public void onItemClick(View clickedView, int position) {
     //Do something here
}

自定义

为了达到最佳效果menu item的大小最好和actionbar的高度一致。

ContextMenuDialogFragment的newInstance可以接收如下参数

animationDelay:在打开与关闭ContextMenuDialogFragment之前的延迟时间。

animationDuration:每一个动画播放的持续时间。

已下载
0