打开抽屉时,操作栏图标消失

时间:2016-04-06 08:26:43

标签: android android-actionbar icons android-menu

我是Android新手。我试图在操作栏中添加2个图标。所以,我使用grails.databinding.dateFormats = [ 'dd-MM-yyyy', 'yyyy-MM-dd', 'yyyy-MM-dd HH:mm:ss.S' ]来做到这一点。以下是我使用的代码getSupportActionBar().setIcon()

onCreate()

当抽屉图标从操作栏中消失时。不,当我重新打开它时,图标会再次出现。

任何人都知道这里发生了什么?

提前致谢。 :)

2 个答案:

答案 0 :(得分:2)

您可以尝试遵循此Link

检查一下,告诉我它是否有效。

或者你可以做这样的事情。 创建menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:id="@+id/next"
          android:icon="@drawable/ic_next"
          android:title="@string/next" />
  <item android:id="@+id/previous"
        android:icon="@drawable/ic_previous"
        android:title="@string/previous" />
  <item android:id="@+id/list"
        android:icon="@drawable/ic_list"
        android:title="@string/list" /> 
</menu>

现在您可以在菜单上设置ICON

现在在CreateOptionMenu

public boolean onCreateOptionsMenu(Menu menu) {
  MenuInflater inflater = getMenuInflater();
  inflater.inflate(R.menu.menu, menu);
  return true;
}

并访问该菜单。

public boolean onOptionsItemSelected(MenuItem item) {
  switch (item.getItemId()) {
  case R.id.next:
        Toast.makeText(this, "You have chosen the " + getResources().getString(R.string.next) + " menu option",
                    Toast.LENGTH_SHORT).show();
        return true;
  …
  default:
        return super.onOptionsItemSelected(item);
  }

答案 1 :(得分:2)

从onDrawerClosed()和onDrawerOpened()中删除invalidateOptionsMenu(),看看抽屉打开时图标是否消失。

由于你没有发布onPrepareOptionsMenu()方法,我想这就是问题所在。 invalidateOptionsMenu()调用onPrepareOptionsMenu(),我想那些代码存在的地方是在抽屉打开时隐藏图标。

P.S:作为单独答案发布,因为我无法发表评论。