我在android中使用actionbar但它没有显示overflowbar.i我正在尝试作为教程,但它不起作用,虽然我做了同样的错误?我只是想要显示和其他溢出的家。这是menue codei我在android中使用actionbar,但它没有显示overflowbar.i我正在尝试作为教程,但它不起作用,虽然我做了同样的错误?我只想要显示和其他溢出的家。这是menue代码
<item android:id="@+id/Homebar"
android:title="Home"
android:orderInCategory="1"
android:showAsAction="ifRoom"
/>
<item android:id="@+id/infobar"
android:title="Info"
android:orderInCategory="2"
android:showAsAction="ifRoom"
/>
<item android:id="@+id/servicebar"
android:title="Services"
android:orderInCategory="2"
android:showAsAction="ifRoom"
/>
<item android:id="@+id/onlinetoolsbar"
android:title="Online tools"
android:orderInCategory="2"
android:showAsAction="ifRoom"
/>
<item android:id="@+id/mediacenterbar"
android:title="Media center"
android:orderInCategory="2"
android:showAsAction="ifRoom"
/>
答案 0 :(得分:6)
您可能正在使用带有专用菜单按钮的设备,或带有专用菜单按钮的仿真器。 在Android 4.4之前,如果设备具有专用菜单按钮,Android将不会显示溢出按钮。如果按菜单按钮,则应显示溢出菜单。
Google在Android 4.4 Kitkat中更改了此行为,现在所有设备都会显示溢出按钮。如果您正在使用模拟器,请尝试在Android 4.4模拟器上进行测试。如果您使用专用菜单按钮在真实设备上进行测试,请使用该按钮“召唤”溢出菜单。
编辑:要获得自定义子菜单/溢出菜单,您必须在菜单项中创建单独的菜单。 像这样:
<item android:id="@+id/Homebar"
android:title="Home"
android:orderInCategory="1"
android:showAsAction="ifRoom"
>
<menu>
<item android:id="@+id/infobar"
android:title="Info"
android:orderInCategory="2"
android:showAsAction="ifRoom"
/>
<item android:id="@+id/servicebar"
android:title="Services"
android:orderInCategory="2"
android:showAsAction="ifRoom"
/>
<item android:id="@+id/onlinetoolsbar"
android:title="Online tools"
android:orderInCategory="2"
android:showAsAction="ifRoom"
/>
<item android:id="@+id/mediacenterbar"
android:title="Media center"
android:orderInCategory="2"
android:showAsAction="ifRoom"
/>
</menu>
</item>
答案 1 :(得分:1)
我希望下面的代码对大多数设备都有用,可以显示带溢出菜单的操作栏并使用:
以下方法很容易在大多数设备中显示操作栏溢出菜单,您可以使用&gt; 3.0版本。
我检查过此代码在Android 4.0,4.1,4.2,4.3版本中正常运行。
<强> MainActivity.java 强>
package com.example.actionbaroverflowmenu;
import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.ActionBar;
import android.app.Activity;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.WindowManager;
public class MainActivity extends Activity {
private Menu mainMenu;
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.main, menu);
mainMenu = menu;
return true;
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if(event.getAction() == KeyEvent.ACTION_DOWN){
switch (keyCode) {
case KeyEvent.KEYCODE_MENU:
mainMenu.performIdentifierAction(R.id.action_overflow, 0);
return true;
}
}
return super.onKeyDown(keyCode, event);
}
}
菜单/ main.xml中强>
<item
android:id="@+id/action_locate"
android:icon="@drawable/ic_action_locate"
android:orderInCategory="200"
android:showAsAction="always"/>
<item
android:id="@+id/action_refresh"
android:icon="@drawable/ic_action_refresh"
android:orderInCategory="300"
android:showAsAction="always"/>
<item
android:id="@+id/action_overflow"
android:icon="@drawable/ic_action_overflow"
android:menuCategory="container"
android:orderInCategory="400"
android:showAsAction="always"
android:visible="true">
<menu>
<item
android:id="@+id/action_refresh"
android:icon="@drawable/ic_action_refresh"
android:menuCategory="container"
android:orderInCategory="100"
android:showAsAction="always"
android:title="Refresh"
android:visible="true"/>
<item
android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:menuCategory="container"
android:orderInCategory="200"
android:showAsAction="always"
android:title="Search"
android:visible="true"/>
<item
android:id="@+id/action_settings"
android:icon="@drawable/ic_action_settings"
android:orderInCategory="300"
android:showAsAction="always"
android:title="@string/action_settings"/>
<item
android:id="@+id/action_help"
android:icon="@drawable/ic_action_help"
android:orderInCategory="400"
android:showAsAction="always"
android:title="Help"/>
<item
android:id="@+id/action_about"
android:icon="@drawable/ic_action_about"
android:orderInCategory="500"
android:showAsAction="always"
android:title="About"/>
</menu>
</item>
从下方链接下载行动栏图标包:Download icon pack
您必须将图标放在drawable文件夹中才能在menu / main.xml文件中使用
答案 2 :(得分:0)
从doc:
中读取此内容动作溢出
操作栏中的操作溢出可以访问应用不常用的操作。具有无菜单硬件密钥的手机上的溢出图标 仅显示 。当用户按下键时,带有菜单键的电话会显示操作溢出。
因此,这不是您应用的奇怪行为,这是Android的正常行为,具体取决于您在showAsAction
中的menu.xml
属性中添加的内容。这还取决于屏幕尺寸和方向。
如果你真的想在你的应用上使用它而不使用hack,check this solution。
答案 3 :(得分:-1)
只有那些项目显示在溢出菜单中,其android:showAsAction设置为&#34; never&#34;。您已将其设置为&#34; ifRoom&#34;对于每个项目。