【问题标题】:Android Toolbar Items not showing?Android 工具栏项目未显示?
【发布时间】:2016-08-28 20:32:06
【问题描述】:

我正在尝试使用 android.support.v7.widget.toolbar 创建一个工具栏,但是当我尝试添加一个项目时,它不会显示在工具栏上:

activity_main.xml 中的工具栏:

<android.support.v7.widget.Toolbar
    android:id="@+id/my_toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

主要活动: 在 onCreate 上:

Toolbar my_tbar = (Toolbar) findViewById(R.id.my_toolbar);
setSupportActionBar(my_tbar);

在 onCreate 之外:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.refresh:
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

res/menu/main_menu.xml

<?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:title="RefreshButton"
    android:id="@+id/refresh"
    android:icon="@drawable/refresh_icon"
    app:showAsAction="always"
    />

</menu>

refresh_icon 是我创建的,因为在@drawable/我没有找到ic_menu_refresh

为什么按钮不显示?

谢谢

【问题讨论】:

  • 有你这一堆代码 public boolean onCreateOptionsMenu(Menu menu){ MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu_main, menu);返回 super.onCreateOptionsMenu(menu); }

标签: android toolbar menuitem appbar


【解决方案1】:

它没有显示,因为您没有破坏菜单布局。在调用 onOptionsItemSelected() 之前,您需要像这样膨胀布局

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main_menu, menu);
    return true;
}

只需将此方法添加到您的活动中,它就可以正常工作。

【讨论】:

  • 有趣的是,Google 在开发者指南中忽略了这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-26
  • 2018-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-09
相关资源
最近更新 更多