Android:DropPopMenu — 显示位置跟随操作按钮显示的带箭头的弹出菜单(转载,写的很好)
16lz
2022-03-20
Android:DropPopMenu — 显示位置跟随操作按钮显示的带箭头的弹出菜单
标签: DropPopMenu Android 2017年04月28日 17:13:24 1245人阅读 评论(0) 收藏 举报 分类: Android(214) Android_控件相关(20)版权声明:本文为博主原创文章,未经博主允许不得转载。 http://blog.csdn.net/HMYANG314/article/details/70920295
目录(?)[+]
转载请注明出处:http://blog.csdn.net/hmyang314/article/details/70920295
DropPopMenu显示位置跟随操作按钮显示的带箭头的弹出菜单
GitHub:https://github.com/HMY314/DropPopMenu
一,介绍
本项目是对带箭头的下拉弹出菜单进行了封装,使用简单,同时有如下特点: 1、可以动态修改菜单的背景; 2、弹出位置是依赖于操作按钮的位置显示,处理了按钮在边界位置引起的菜单显示错位问题; 3、菜单宽度以文字的最大长度作为宽度动态计算了; 4、菜单默认弹窗方向是在操作按钮下面,当操作按钮在屏幕底部时,或者菜单的 高度不能完全显示时,菜单是显示在操作按钮上面的
二,使用
1、默认风格 View view = findViewById...... mDropPopMenu = new DropPopMenu(this); mDropPopMenu.setOnItemClickListener(new DropPopMenu.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int position, long id, MenuItem menuItem) { Toast.makeText(MainActivity.this, "点击了 " + menuItem.getItemId(), Toast.LENGTH_SHORT).show(); } }); mDropPopMenu.setMenuList(getMenuList()); mDropPopMenu.show(view); private List
2、改变弹窗背景、文字颜色 public void onClickPopWhite(View view) { DropPopMenu dropPopMenu = new DropPopMenu(this); dropPopMenu.setTriangleIndicatorViewColor(Color.WHITE); dropPopMenu.setBackgroundResource(R.drawable.bg_drop_pop_menu_white_shap); dropPopMenu.setItemTextColor(Color.BLACK); dropPopMenu.setOnItemClickListener(new DropPopMenu.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int position, long id, MenuItem menuItem) { Toast.makeText(MainActivity.this, "点击了 " + menuItem.getItemId(), Toast.LENGTH_SHORT).show(); } }); dropPopMenu.setMenuList(getMenuList()); dropPopMenu.show(view);}
3、显示图标 public void onClickPopIcon(View view) { DropPopMenu dropPopMenu = new DropPopMenu(this); dropPopMenu.setTriangleIndicatorViewColor(Color.WHITE); dropPopMenu.setBackgroundResource(R.drawable.bg_drop_pop_menu_white_shap); dropPopMenu.setItemTextColor(Color.BLACK); dropPopMenu.setIsShowIcon(true); dropPopMenu.setOnItemClickListener(new DropPopMenu.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int position, long id, MenuItem menuItem) { Toast.makeText(MainActivity.this, "点击了 " + menuItem.getItemId(), Toast.LENGTH_SHORT).show(); } }); dropPopMenu.setMenuList(getIconMenuList()); dropPopMenu.show(view);}private List getIconMenuList() { List list = new ArrayList<>(); list.add(new MenuItem(R.drawable.ic_honor_level1, 1, "选项1")); list.add(new MenuItem(R.drawable.ic_honor_level2, 2, "选项2")); list.add(new MenuItem(R.drawable.ic_honor_level3, 3, "选项3")); return list;}
更多相关文章
- TextView 最多显示2行,每行最多8个字,多余的显示....
- Android的TextView/EditText使用CharacterStyle&SpannableString
- Android应用开发——TextView控件属性列表
- Android中系统状态栏的隐藏和显示
- Android重要类学习之——Activity
- Android实现程序前后台切换效果
- android软键盘的显示后隐藏
- 在Activity中使用Menu
- 2013.12.05(5)——— android ViewPagerIndicator之SampleTabsDefa