2013-03-01 82 views
2

我想添加的溢出菜单,从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> 

我已经看过,谷歌提供以及多种在线资源并不能找到一个解决方案的文件中。任何帮助都感激不尽!

+2

什么是您的“自定义标题栏”,具体是什么? – CommonsWare 2013-03-01 20:43:20

+0

编辑显示标题栏以及它实施的清单 – 2013-03-01 20:47:35

+0

我的意思是,我创建了标题栏,它不是Android主题 – 2013-03-01 20:54:30

回答

1

如果您正在使用操作栏,则通过操作栏右侧的“...”可供件或通过菜单按钮为具有屏幕外MENU按钮的设备触发溢出菜单。

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

+0

严重吗?提供可定制的动作/标题栏是Android的残酷,但如果您这样做,则可以自行实施整个菜单系统。 – GreenBee 2013-06-15 17:58:41

+0

@GreenBee:你似乎误解了。正常的菜单系统工作得很好('onCreateOptionsMenu()'等),现在被称为溢出。显示溢出的触发机制因设备而异(带有它的设备的菜单按钮,......没有设备的可供使用的显示)。如果你不喜欢溢出,或者没有显示动作栏,那么*你必须自己滚动一些东西,正如我的答案的第二段所述。 – CommonsWare 2013-06-15 18:01:03

+2

谢谢。我的标题栏代码与上述问题中的标题栏代码几乎相似。在我使用自定义标题栏时,它隐藏了默认的Android操作栏,隐藏了菜单(可供件)。 也许我不需要自定义栏。您是否知道在标题/操作栏中显示图像的方法(不仅仅是Android默认拾取的方形应用程序图标)。我只需要在那里有一个不同的图像 - 稍宽一点,并有一个自定义栏和一个菜单系统听起来像一个矫枉过正的。 对不起劫持评论。我的问题很小,所以我想我会在这里问,而不是一个新的职位。 – GreenBee 2013-06-18 14:18:01

1

你的自定义标题栏应该如何适应ActionBar/Menu排列?根据添加到/menu/overflow_menu.xml文件的项目,MenuInflater#inflate将创建一个ActionBar(后蜂窝/ API 11+)或菜单(API-11之前)。

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

探索ActionBar的样式可能更好 - http://developer.android.com/guide/topics/ui/actionbar.html#Style - 其中包括允许自定义图标&标题,甚至添加自定义视图/按钮。如果你想支持早期的Android版本,你可以有一种只适用于Honeycomb设备的样式,但是你必须手动将该布局添加到你的活动中。

另一种选择是ActionBarSherlock,这是强烈推荐和广泛使用,但我没有亲身经历。