你的位置:首页 > 软件开发 > 操作系统 > 点击某个按钮,让菜单选项从按钮周围指定位置弹出。

点击某个按钮,让菜单选项从按钮周围指定位置弹出。

发布时间:2015-12-25 15:00:27
Android Material Design:PopupMenuAndroid Material Design 引入的PopupMenu类似过去的上下文菜单,但是更灵活。 如图所示: 现在给出实现上图PopupMenu的代码。 本例是一个普通的Button触发弹出Popup ...

点击某个按钮,让菜单选项从按钮周围指定位置弹出。

 
  1. package zhangphil.materialdesign;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.support.v7.widget.PopupMenu;  
  6. import android.view.MenuItem;  
  7. import android.view.View;  
  8. import android.widget.Button;  
  9. import android.widget.Toast;  
  10.   
  11. public class MainActivity extends Activity {  
  12.   
  13.     @Override  
  14.     protected void onCreate(Bundle savedInstanceState) {  
  15.         super.onCreate(savedInstanceState);  
  16.         setContentView(R.layout.activity_main);  
  17.   
  18.         final Button button = (Button) findViewById(R.id.button);  
  19.         button.setOnClickListener(new View.OnClickListener() {  
  20.   
  21.             @Override  
  22.             public void onClick(View v) {  
  23.                 showPopupMenu(button);  
  24.             }  
  25.         });  
  26.     }  
  27.   
  28.     private void showPopupMenu(View view) {  
  29.         // View当前PopupMenu显示的相对View的位置  
  30.         PopupMenu popupMenu = new PopupMenu(this, view);  
  31.   
  32.         // menu布局  
  33.         popupMenu.getMenuInflater().inflate(R.menu.main, popupMenu.getMenu());  
  34.   
  35.         // menu的item点击事件  
  36.         popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {  
  37.             @Override  
  38.             public boolean onMenuItemClick(MenuItem item) {  
  39.                 Toast.makeText(getApplicationContext(), item.getTitle(), Toast.LENGTH_SHORT).show();  
  40.                 return false;  
  41.             }  
  42.         });  
  43.   
  44.         // PopupMenu关闭事件  
  45.         popupMenu.setOnDismissListener(new PopupMenu.OnDismissListener() {  
  46.             @Override  
  47.             public void onDismiss(PopupMenu menu) {  
  48.                 Toast.makeText(getApplicationContext(), "关闭PopupMenu", Toast.LENGTH_SHORT).show();  
  49.             }  
  50.         });  
  51.   
  52.         popupMenu.show();  
  53.     }  
  54. }  
  1. <menu "http://schemas.android.com/apk/res/android"  
  2.     "http://schemas.android.com/apk/res-auto"  
  3.     "http://schemas.android.com/tools" >  
  4.   
  5.     <item  
  6.         android:id="@+id/action_open"  
  7.         android:orderInCategory="100"  
  8.         android:title="打开"  
  9.         app:showAsAction="never"/>  
  10.     <item  
  11.         android:id="@+id/action_new"  
  12.         android:orderInCategory="100"  
  13.         android:title="新建"  
  14.         app:showAsAction="never"/>  
  15.     <item  
  16.         android:id="@+id/action_del"  
  17.         android:orderInCategory="100"  
  18.         android:title="删除"  
  19.         app:showAsAction="never"/>  
  20.   
  21. </menu>  

原标题:点击某个按钮,让菜单选项从按钮周围指定位置弹出。

关键词:位置

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。