gpt4 book ai didi

基于Android实现点击某个按钮让菜单选项从按钮周围指定位置弹出

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章基于Android实现点击某个按钮让菜单选项从按钮周围指定位置弹出由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

android material design:popupmenu 。

android material design 引入的popupmenu类似过去的上下文菜单,但是更灵活。 如图所示:

基于Android实现点击某个按钮让菜单选项从按钮周围指定位置弹出

现在给出实现上图popupmenu的代码。 本例是一个普通的button触发弹出popupmenu.

测试的mainactivity.java :

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
package zhangphil.materialdesign; 
import android.app.activity;
import android.os.bundle;
import android.support.v.widget.popupmenu;
import android.view.menuitem;
import android.view.view;
import android.widget.button;
import android.widget.toast; 
public class mainactivity extends activity { 
@override
   protected void oncreate(bundle savedinstancestate) {
     super .oncreate(savedinstancestate);
     setcontentview(r.layout.activity_main); 
     final button button = (button) findviewbyid(r.id.button);
     button.setonclicklistener( new view.onclicklistener() { 
      @override
       public void onclick(view v) {
         showpopupmenu(button);
       }
     });
  
   private void showpopupmenu(view view) {
     // view当前popupmenu显示的相对view的位置
     popupmenu popupmenu = new popupmenu( this , view); 
     // menu布局
     popupmenu.getmenuinflater().inflate(r.menu.main, popupmenu.getmenu()); 
     // menu的item点击事件
     popupmenu.setonmenuitemclicklistener( new popupmenu.onmenuitemclicklistener() {
       @override
       public boolean onmenuitemclick(menuitem item) {
         toast.maketext(getapplicationcontext(), item.gettitle(), toast.length_short).show();
         return false ;
       }
     }); 
      // popupmenu关闭事件
     popupmenu.setondismisslistener( new popupmenu.ondismisslistener() {
        @override
        public void ondismiss(popupmenu menu) {
          toast.maketext(getapplicationcontext(), "关闭popupmenu" , toast.length_short).show();
       }
      });
  
      popupmenu.show();
    }
}
  package zhangphil.materialdesign;
import android.app.activity;
import android.os.bundle;
import android.support.v7.widget.popupmenu;
import android.view.menuitem;
import android.view.view;
import android.widget.button;
import android.widget.toast;
public class mainactivity extends activity {
  @override
  protected void oncreate(bundle savedinstancestate) {
  super .oncreate(savedinstancestate);
  setcontentview(r.layout.activity_main);
  final button button = (button) findviewbyid(r.id.button);
  button.setonclicklistener( new view.onclicklistener() {
   @override
   public void onclick(view v) {
   showpopupmenu(button);
   }
  });
  }
  private void showpopupmenu(view view) {
  // view当前popupmenu显示的相对view的位置
  popupmenu popupmenu = new popupmenu( this , view);
  // menu布局
  popupmenu.getmenuinflater().inflate(r.menu.main, popupmenu.getmenu());
  // menu的item点击事件
  popupmenu.setonmenuitemclicklistener( new popupmenu.onmenuitemclicklistener() {
   @override
   public boolean onmenuitemclick(menuitem item) {
   toast.maketext(getapplicationcontext(), item.gettitle(), toast.length_short).show();
   return false ;
   }
  });
  // popupmenu关闭事件
  popupmenu.setondismisslistener( new popupmenu.ondismisslistener() {
   @override
   public void ondismiss(popupmenu menu) {
   toast.maketext(getapplicationcontext(), "关闭popupmenu" , toast.length_short).show();
   }
  });
  popupmenu.show();
  }
}

mainactivity.java需要的activity_main布局文件只含一个普通的android button,在次不再赘述.

位于menu目录下的main.xml:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<menu xmlns:android= "http://schemas.android.com/apk/res/android"
    xmlns:app= "http://schemas.android.com/apk/res-auto"
    xmlns:tools= "http://schemas.android.com/tools" >
    <item
      android:id= "@+id/action_open"
      android:orderincategory="
      android:title= "打开"
      app:showasaction= "never" />
   <item
     android:id= "@+id/action_new"
     android:orderincategory="
     android:title= "新建"
     app:showasaction= "never" />
   <item
     android:id= "@+id/action_del"
     android:orderincategory="
     android:title= "删除"
      app:showasaction= "never" />
  </menu>

以上内容给大家分享基于android实现点击某个按钮让菜单选项从按钮周围指定位置弹出的相关知识,希望大家喜欢.

最后此篇关于基于Android实现点击某个按钮让菜单选项从按钮周围指定位置弹出的文章就讲到这里了,如果你想了解更多关于基于Android实现点击某个按钮让菜单选项从按钮周围指定位置弹出的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com