将“溢出”菜单添加到自定义标题栏

时间:2013-03-01 20:33:53

标签: java android drop-down-menu

我正在尝试添加Android在我的自定义标题栏上提供的溢出菜单,但它似乎没有出现

以下是我的活动中的代码

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

在我的.xml

     <?xml version="1.0" encoding="utf-8"?>
     <menu xmlns:android="http://schemas.android.com/apk/res/android">
     <item android:id="@+id/settings" android:title="Settings" />
     <item android:id="@+id/help" android:title="Help" />
     </menu>

自定义标题条形码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"   
android:layout_height="44dp"   
android:orientation="horizontal"   
android:gravity="center_vertical"
android:background="#000000"   
>
<ImageView
    android:id="@+id/indicator"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="left"              
    android:src="@drawable/indicator"
    android:layout_marginRight="3dip"
     />

   <ImageView
    android:id="@+id/indicator"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="left"              
    android:src="@drawable/launcher_blue_tile"
    android:layout_marginRight="5dip"
     />

    <TextView              
    android:id="@+id/titleHeading"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/app_name"
    style="@style/titleBarHeading"

    /> 

Android清单

    <activity
        android:name=".ILaneMainMenuActivity"
        android:icon="@drawable/indicator"
        android:label="@string/app_name"
        android:theme="@style/appTheme">

    </activity>

我查看了Google提供的文档以及多个在线资源,但无法找到解决方案。任何帮助都感激不尽!

2 个答案:

答案 0 :(得分:1)

如果您正在使用操作栏,则溢出菜单将通过操作栏右侧的“...”示波器触发,或通过带有离屏MENU按钮的设备的“菜单”按钮触发。 / p>

如果您没有使用操作栏 - 这是我的猜测 - 那么您将需要创建自己的菜单系统。

答案 1 :(得分:1)

您的自定义标题栏应该如何适应ActionBar /菜单排列? MenuInflater#inflate将根据添加到/menu/overflow_menu.xml文件中的项目创建ActionBar(后Honeycomb / API 11+)或菜单(pre-API-11)。

溢出菜单(同样,仅在API 11+中)将自动添加如果您有更多项目。你只有2个项目 - 设置和帮助 - 所以除非它是一个小屏幕,两个项目都可能适合,所以不需要溢出。

你可能最好去探索ActionBar的造型可能性 - http://developer.android.com/guide/topics/ui/actionbar.html#Style - 其中包括允许自定义你的图标和放大器。标题,甚至添加自定义视图/按钮。如果您想支持早期的Android版本,您可以使用仅适用于预蜂窝设备的样式,但您必须手动将该布局添加到您的活动中。

另一种选择是ActionBarSherlock,这是强烈推荐和广泛使用的,但我没有个人经验。