2014-12-23 106 views
2

我从正常的ActionBar更改为新的工具栏。我的问题是我的旧菜单不起作用。当我点击溢出图标时,什么也没有发生。我使用的是appcompat v7,但我找不到任何解决方案。 有人可以帮我吗?工具栏菜单不起作用

Menufunctions:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu 
    getMenuInflater().inflate(R.menu.chatmenu, menu); 

    return super.onCreateOptionsMenu(menu); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case R.id.onlineliste: 
     getOnlineList(); 
     return true; 
    case R.id.settings: 
     showSettings(); 
     return true; 
    case R.id.logout: 
     logout(); 
     return true; 
    default: 
     return super.onOptionsItemSelected(item); 
    } 
} 

Chatmenu:

 <?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" > 
<item 
    android:id="@+id/onlineliste" 
    android:title="@string/userliste" 
    app:showAsAction="always"> 
</item> 
<item 
      android:id="@+id/settings" 
      android:title="@string/settings" 
      app:showAsAction="never"> 
</item> 
    <item 
      android:id="@+id/logout" 
      android:title="@string/logout" 
      app:showAsAction="never"> 
</item> 
</menu> 

主题

<style name="AppTheme.Base" parent="Theme.AppCompat.Light"> 
    <item name="colorPrimary">#428bca</item> 
    <item name="colorPrimaryDark">#428bca</item> 
    <item name="android:windowNoTitle">true</item> 
    <item name="theme">@style/ThemeOverlay.AppCompat.Dark</item> 
    <item name="windowActionBar">false</item> 
</style> 

工具栏

<android.support.v7.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:minHeight="?attr/actionBarSize" 
    android:background="?attr/colorPrimaryDark" /> 
+0

什么是你的chatmenu? – mmlooloo

+0

对不起,我忘了添加它。查看我的编辑 – Phil

回答

5

哦,我的上帝,我知道了。感谢您的帮助! 问题是我有一个RelativeLayout与工具栏重叠,但我没有直接看到它。该解决方案是添加

android:layout_below="@+id/toolbar"以相对布局,现在一切工作正常。

再次感谢所有的帮助家伙,并对不起!

+0

谢谢,你刚刚救了我的命 –

1

试试这个:

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" > 
<item 
    android:id="@+id/onlineliste" 
    android:visible="true" 
    android:title="@string/userliste" 
    app:showAsAction="never"> 
</item> 
<item 
      android:id="@+id/settings" 
      android:visible="true" 
      android:title="@string/settings" 
      app:showAsAction="never"> 
</item> 
    <item 
      android:id="@+id/logout" 
      android:visible="true" 
      android:title="@string/logout" 
      app:showAsAction="never"> 
</item> 

还你的主题必须有Theme.AppCompat父母,你的活动必须延伸从ActionBarActivity

+0

试过了,没有任何改变:/是我已经有Theme.AppCompat作为父母 – Phil

+0

删除'android:visible =“true”' – mmlooloo

+0

仍然是同样的行为,我点击3个点并没有任何反应 – Phil

0

也许你需要设置你的Toolbar作为活动动作条,使用:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.your_layout); 

    Toolbar toolbar = (Toolbar) findViewById(R.id.your_toolbar); 
    setSupportActionBar(toolbar); 
+0

是的,我已经做了'工具栏工具栏=(工具栏)findViewById(R.id.toolbar);如果(toolbar!= null)setSupportActionBar(toolbar); }' – Phil

+0

你是从AppCompat.NoActionBar主题继承你的主题吗? 也请确保您使用的是而不是。 – natario

+0

我的父母主题是Theme.AppCompat.Light – Phil

0

您没有从onCreateOptionMenu()返回true。

文档说的

You must return true for the menu to be displayed; if you return false it will not be shown. 

欧洲工商管理学院

return super.onCreateOptionsMenu(menu); 

总是返回false。从onCreateOptionsMenu(menu)返回true;

查看这里的文档。 Source Link

+0

不起作用,mmlooloo也提到了这一点 通过它与普通操作栏之前的工作方式,所以它不能要求所有时间都返回true – Phil

+0

编辑了一些更多的代码,也许它可以帮助你找到我的问题 – Phil