如何水平alignment菜单项

如何在谷歌浏览器的第一行创build水平alignment的菜单项

在这里输入图像说明

我创build了一个菜单子项的第一个项目,但通过这种方式,我得到了一行,将我发送到另一个菜单,那么如何使用菜单文件做到这一点? 我不想使用Dialog

这是我的菜单文件:

<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <group android:id="@+id/toolbar_menu" android:visible="true"> <item android:id="@+id/item_tabs" android:icon="@drawable/ic_tabs_24dp" android:title="@null" app:showAsAction="always"/> <item android:id="@+id/icon_row_menu_id" android:title="@null" android:visible="true"> <menu> <item android:id="@+id/item_back" android:icon="@drawable/ic_arrow_back_24dp" android:title="@string/go_back" /> <item android:id="@+id/item_forward" android:icon="@drawable/ic_arrow_forward_24dp" android:title="@string/go_forward" /> <item android:id="@+id/item_bookmark_page" android:icon="@drawable/ic_star_border_24dp" android:title="@string/bookmark_this_page" /> <item android:id="@+id/item_download_page" android:icon="@drawable/ic_download_24dp" android:title="@string/download_page" /> <item android:id="@+id/item_info" android:icon="@drawable/ic_info_outline_24dp" android:title="@string/view_site_information" /> </menu> </item> <item android:id="@+id/item_new_tab" android:title="@string/new_tab" /> <item android:id="@+id/item_new_incognito_tab" android:title="@string/new_incognito_tab" /> <item android:id="@+id/item_bookmarks" android:title="@string/bookmarks" /> <item android:id="@+id/item_history" android:title="@string/history" /> <item android:id="@+id/item_downloads" android:title="@string/download" /> <item android:id="@+id/item_settings" android:title="@string/settings" /> </group> </menu> 

在这里,我如何使用它:

 @Override public boolean onCreateOptionsMenu(Menu menu) { mainMenu = menu; MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main_menu, menu); return true; } 

Solutions Collecting From Web of "如何水平alignment菜单项"

你可以使用app:actionLayout="@layout/layout_name"标签app:actionLayout="@layout/layout_name"属性的item标签

 <item android:id="@+id/menu_id" android:title="@string/title" app:showAsAction="never" app:actionLayout="@layout/layout_name"/> 

而你的layout_name是任何布局文件

 <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent"> 

//在这里添加你的水平菜单项

 </LineearLayout> 

你可以访问这个项目

  @Override public boolean onPrepareOptionsMenu(Menu menu) { MenuItem item = menu.findItem(R.id.menu_id); Linearlayout rootView = (LinearLayout)item.getActionView(); YourControlClass control = (YourControlClass) rootView.findViewById(R.id.control_id); return true; } 

你也可以尝试使用popup式窗口,这可能会帮助你检查上面的代码

popup.xml布局文件不是菜单,

  <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:background="@color/cardview_light_background" android:layout_margin="20dp"> <LinearLayout android:layout_margin="5dp" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content"> //your images with horizontal </LinearLayout> <LinearLayout android:orientation="vertical" android:layout_margin="5dp" android:layout_width="match_parent" android:layout_height="wrap_content"> // your vertical list view </LinearLayout> </LinearLayout> 

您可以将下面的代码添加到onClick()方法中:

 LayoutInflater layoutInflater = (LayoutInflater) context .getSystemService(LAYOUT_INFLATER_SERVICE); final View popupView = layoutInflater.inflate(R.layout.popup, null); final PopupWindow popupWindow = new PopupWindow( popupView, ActionMenuView.LayoutParams.WRAP_CONTENT, ActionMenuView.LayoutParams.WRAP_CONTENT, true); popupWindow.setOutsideTouchable(true); popupWindow.setFocusable(true); popupWindow.setBackgroundDrawable(new BitmapDrawable()); View parent = view.getRootView(); popupWindow.showAtLocation(parent, Gravity.TOP|Gravity.END,0,0);