国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Android > 正文

Android仿微信長(zhǎng)按菜單效果

2019-12-12 01:21:51
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文實(shí)例為大家分享了Android仿微信長(zhǎng)按菜單展示的具體代碼,供大家參考,具體內(nèi)容如下

FloatMenu

A menu style pop-up window that mimics WeChat。仿微信的長(zhǎng)按菜單。

效果如下

引入方法:

Github地址:https://github.com/JavaNoober/FloatMenu

dependencies {  ....  compile 'com.noober.floatmenu:common:1.0.2'}

使用說(shuō)明

使用方法1:

Activity 重寫(xiě)dispatchTouchEvent,并且新建一個(gè)Point對(duì)象,show的時(shí)候傳入改對(duì)象

 private Point point = new Point(); @Override public boolean dispatchTouchEvent(MotionEvent ev) {  if(ev.getAction() == MotionEvent.ACTION_DOWN){   point.x = (int) ev.getRawX();   point.y = (int) ev.getRawY();  }  return super.dispatchTouchEvent(ev); }

調(diào)用:

 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {  @Override  public void onItemClick(AdapterView<?> parent, View view, int position, long id) {   FloatMenu floatMenu = new FloatMenu(MainActivity.this);   floatMenu.items("菜單1", "菜單2", "菜單3");   floatMenu.show(point);  } });

使用方法2:

不需要重寫(xiě)dispatchTouchEvent,但是需要在初始化的時(shí)候傳入所點(diǎn)擊的view,floatment初始化必須在點(diǎn)擊事件外部

 final FloatMenu floatMenu = new FloatMenu(this, btn1);  floatMenu.items("菜單1", "菜單2", "菜單3");  floatMenu.setOnItemClickListener(new FloatMenu.OnItemClickListener() {   @Override   public void onClick(View v, int position) {    Toast.makeText(MainActivity.this, "菜單"+position, Toast.LENGTH_SHORT).show();   }  });

設(shè)置菜單的方式:

1.代碼設(shè)置

floatMenu.items("菜單1", "菜單2", "菜單3");  ...  List<String> list = new ArrayList<>();  list.add("菜單1"); list.add("菜單2"); list.add("菜單3");  floatMenu.items(list);

2.menu.xml設(shè)置

<menu xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto">   <item app:menu_title="Send to Chat" app:icon = "@drawable/brush"></item>   <item    app:menu_title="Add to Favorites" app:icon = "@drawable/barrage"/>   <item    app:menu_title="Delete" app:icon = "@drawable/clock"/>   <item    app:menu_title="More" app:icon = "@drawable/collection"/></menu> floatMenu.inflate(R.menu.popup_menu);

方法都提供參數(shù)設(shè)置菜單的寬度:

public void items(List<MenuItem> itemList, int itemWidth)public void items(int itemWidth, String... items) public void inflate(int menuRes, int itemWidth)

創(chuàng)建菜單:

注意點(diǎn):

顯示floatmenu有兩種方法:

floatmenu.show(point)與floatmenu.show()的區(qū)別

區(qū)別在于,創(chuàng)建floatmenu對(duì)象的位置,如果使用第2種方法,創(chuàng)建floatmenu必須在點(diǎn)擊事件的外面

第一種則沒(méi)有這種限制,如下所示:

final FloatMenu floatMenu = new FloatMenu(this, btn2);floatMenu.inflate(R.menu.popup_menu);floatMenu.setOnItemClickListener(new FloatMenu.OnItemClickListener() { @Override public void onClick(View v, int position) {  Toast.makeText(MainActivity.this, "菜單"+position, Toast.LENGTH_SHORT).show(); }});listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {  @Override  public void onItemClick(AdapterView<?> parent, View view, int position, long id) {   FloatMenu floatMenu = new FloatMenu(MainActivity.this);   floatMenu.items("菜單1", "菜單2", "菜單3");   floatMenu.show(point);  } });

new FloatMenu(this, view) 與 new FloatMenu(this)區(qū)別

使用第二種方法創(chuàng)建對(duì)象在,必須重寫(xiě)dispatchTouchEvent

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 临西县| 苗栗市| 洛川县| 罗田县| 宝清县| 黎城县| 伽师县| 延川县| 西乡县| 靖江市| 白水县| 平遥县| 寿光市| 新邵县| 理塘县| 临夏市| 息烽县| 富顺县| 万州区| 荆州市| 上饶市| 乌鲁木齐县| 博兴县| 中阳县| 聂荣县| 南安市| 越西县| 福贡县| 普洱| 明光市| 呼和浩特市| 隆安县| 梁山县| 庐江县| 沿河| 梅州市| 鹰潭市| 临桂县| 海南省| 连州市| 平江县|