如何添加没有操作栏的菜单button?

我想添加一个菜单button到我的应用程序的右上angular,没有操作栏,就像下面屏幕截图中的Google Fit应用程序一样。 谁能帮我?

没有操作栏的菜单按钮

Solutions Collecting From Web of "如何添加没有操作栏的菜单button?"

您可以简单地使用PopupMenu ,例如单击时将以下内容添加到button:

 public void showPopup(View v) {  PopupMenu popup = new PopupMenu(this, v);  MenuInflater inflater = popup.getMenuInflater();  inflater.inflate(R.menu.actions, popup.getMenu());  popup.show(); } 

有关更多信息,请阅读Creating a Popup Menu : http : //developer.android.com/guide/topics/ui/menus.html

添加一个工具栏的布局,并使其透明。 这是将菜单项添加到布局的最佳解决scheme,同时给出没有操作栏/工具栏的外观。

布局

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- The rest of your code here --> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="56dp" android:background="@android:color/transparent"/> </RelativeLayout> 

主题

 <resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> </style> </resources> 

充气菜单,设置标题,菜单点击监听器的示例。

 Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); toolbar.setTitle("Toolbar"); toolbar.inflateMenu(R.menu.menu_main); toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { if (item.getItemId() == R.id.action_refresh) { } return false; } }); 

不要将工具栏设置为操作栏。 主题只是完全删除它。

我不认为你可以添加一个没有操作栏的菜单。 但是,我能想到的有两种方法。

  1. 与背景颜色相同的“创build”和“操作”栏,使其不显示,然后添加菜单。

  2. 只需在屏幕右上angular添加一个button,然后将下拉菜单放在布局中即可。

或者使用@MYbuild议的popup式菜单

 <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_overflow_holo_dark" android:contentDescription="@string/descr_overflow_button" android:onClick="showPopup" /> 

在要显示此菜单的xml文件中添加上面的行。

 public void showMenu(View v) { PopupMenu popup = new PopupMenu(this, v); // This activity implements OnMenuItemClickListener popup.setOnMenuItemClickListener(this); popup.inflate(R.menu.actions); popup.show(); } @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case R.id.archive: archive(item); return true; case R.id.delete: delete(item); return true; default: return false; } } 

有关更多详情,请浏览: https : //developer.android.com/guide/topics/ui/menus.html