Actionbar不显示项目

时间:2015-06-05 16:36:35

标签: java android android-actionbar android-4.4-kitkat

我知道以前曾多次询问过这个问题。但我想我必须自己提出这个问题,因为现有的问题都不符合我的问题:

我正在为Kitkat(4.4)开发并尝试使用主题为的动作栏:holo.light.darkActionBar。

我使用菜单中的项创建了一些xml文件,并将它们在java类中链接到活动:

菜单/主:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity">
<item android:id="@+id/action_filter"
    android:title="@string/action_filter"
    android:orderInCategory="100"
    android:icon="@drawable/ic_action_filter"
    app:showAsAction="ifRoom" />

MainActivity:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    menu.clear();
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

问题如下: 当我单击menu / main.xml时,我可以看到一个项目被添加到操作栏。但它永远不会出现在activity_main.xml中。

我搜索了很多个小时,并考虑了以下内容: -set minSDK为19 -i知道有一段时间它没有显示,因为设备有一个菜单按钮。但我用一个图标说它应该显示出来。因此它应该出现。而且我还使用了没有菜单按钮的Nexus Emulation。 - 我使用Android工作室和android studio的assistentce插入活动。 - mainActivity扩展了FragmentActivity(因为我选择了谷歌地图活动) - 我尝试了其他主题但是动作栏完全消失了(oc没有使用.noActionBar!) - 我为动作栏设置了一个样式,在那里我指定了一种红色。此颜色将传播到活动,但不会传播到项目。

我的导入是:

import android.support.v4.app.FragmentActivity;
import android.os.Bundle;
import android.view.Menu;

import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;

应该如何看待: rendering the menu/main.xml

它看起来如何: rendering the activity_main

我真的希望你们中的一些人可以帮助我,这让我疯狂。

2 个答案:

答案 0 :(得分:1)

我认为,使菜单膨胀的代码应如下所示:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_activity_actions, menu);
return super.onCreateOptionsMenu(menu);
}

并删除menu.clear()行。

答案 1 :(得分:0)

  

尝试使用主题为:holo.light.darkActionBar

的操作栏

这意味着您正在尝试使用本机操作栏。

  

我使用菜单中的项创建了一些xml文件,并将它们在java类中链接到活动

删除app命名空间,并将app:showAsAction重命名为android:showAsActionapp约定用于您未使用的appcompat-v7操作栏后退。

  

MainActivity:

摆脱menu.clear()

  

但它永远不会出现在activity_main.xml中。

不应该这样。它应该在您运行应用程序时显示,而不一定在其他资源的编辑器中显示。

  

我还使用了没有菜单按钮的Nexus仿真

当然有Nexus设备带有MENU按钮。尝试按 PgUp ;如果你从屏幕底部看到溢出菜单,你的模拟器有一个MENU按钮。