如何水平对齐菜单项 [英] how to align menu items horizontally

查看:76
本文介绍了如何水平对齐菜单项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何创建在第一行中水平对齐的菜单项,例如google chrome

How to create menu items aligned horizontally in the first row like google chrome

我用菜单子项创建了第一项,但是通过这种方式,我得到了将我发送到另一个菜单的行,那么如何使用菜单文件来做到这一点呢?我不想使用对话框

I created the first item with a menu child but by this way i got a row that send me to the other menu, So how to do that using menu file ? i don't want to use 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;
}

推荐答案

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

You can use app:actionLayout="@layout/layout_name" property of item tag like

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

和您的 layout_name 是任何布局文件,例如

and your layout_name is any layout file like

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

//在此处添加水平菜单项

// add your horizontal menu item here

</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; 
    } 

这篇关于如何水平对齐菜单项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆