Android --右上角弹出菜单
效果:
两个布局文件:
1.main.xml:主要放一个Button,点击弹出菜单
2.menu.xml:就是弹出显示的菜单的布局
MainActivity.java: 点击Button,弹出PopupWindow
public class MainActivity extends AppCompatActivity { Button button; PopupWindow popupWindow; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button=findViewById(R.id.btn_menu); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 获取自定义的菜单布局文件 View menu_view=getLayoutInflater().inflate(R.layout.menu,null,false); // 创建PopupWindow实例,设置菜单宽度和高度为包裹其自身内容 popupWindow=new PopupWindow(menu_view, LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT,true); //设置菜单显示在按钮的下面 popupWindow.showAsDropDown(button,0,0); // 点击其他地方消失 menu_view.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { //如果菜单存在并且为显示状态,就关闭菜单并初始化菜单 if (popupWindow!=null&&popupWindow.isShowing()){ popupWindow.dismiss(); popupWindow=null; } return false; } }); } }); } }