我们切换回显示Actionbar
但[3]动作溢出菜单未显示(在Android 4.3,Samsung Note 2中)。
<uses-sdk
android:minSdkVersion="15"
android:targetSdkVersion="19" />
活动类extends android.app.Activity
(不是ActionBarActivity)
我玩甚至将所有菜单项设置为android:showAsAction="never"
(在这种情况下,ActionBar上没有任何操作)
文档
使用appcompat支持库时的类似问题
编辑common_actions.xml
的所有操作均为android:showAsAction="never"
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_home"
android:icon="@drawable/ic_default_image"
android:showAsAction="never"
android:title="@string/recommend"
/>
<item
android:id="@+id/action_downloadmanager"
android:icon="@drawable/icon_personal_light_download_manage"
android:showAsAction="never"
android:title="@string/downloadmanage"
/>
<item
android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:showAsAction="never"
android:title="@string/search"
/>
<item
android:id="@+id/action_settings"
android:icon="@drawable/ic_action_settings"
android:showAsAction="never"
android:title="@string/setting"
/>
</menu>
答案 0 :(得分:3)
这是一个三星的事情,在我看来实际上是一个非常愚蠢的UI决定。在Touchwiz中,对于所有版本,不支持ActionBar中的AFAIK溢出,而是必须点击左下角按钮,弹出Gingerbread-esque菜单。
使用AppCompat中的工具栏虽然你可以覆盖这个行为并且它在ActionBar中显示正常溢出,但是我写了一篇关于从ActionBar移动到工具栏的简短帖子,你可以查看here,其中包含指向更多内容的链接资源。
答案 1 :(得分:0)
进一步观察我发现了一个类似的问题https://stackoverflow.com/questions/23906985/action-overflow-button-not-shown(和here too)
实际上导致了Android action bar not showing overflow
中的几个选项我去了
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
makeOverflowMenu();
}
private void makeOverflowMenu() {
//devices with hardware menu button don't show action overflow menu
try {
ViewConfiguration config = ViewConfiguration.get(this);
Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
if (menuKeyField != null) {
menuKeyField.setAccessible(true);
menuKeyField.setBoolean(config, false);
}
} catch (Exception e) {
Log.d(TAG, e.getLocalizedMessage());
}
}
Samsung Note 2上的硬件菜单按钮就像按下了ActionBar操作溢出菜单一样。
答案 2 :(得分:0)
这是正确的行为。
如果你有一个物理菜单按钮(三星有它),Android将自动隐藏三个点。 如果你不这样做,它会显示出来。