我正在使用这种结构的应用程序中工作:
该应用没有初始的ActionBar,因此我以这种方式在每个Activity的OnCreate上添加它:
android.support.v7.widget.Toolbar barra =(android.support.v7.widget.Toolbar) getLayoutInflater().inflate(local.quick_stuff.R.layout.barra_herramientas,null);
LinearLayout layout_actividad = (LinearLayout)findViewById(R.id.cp_lista_receta);
layout_actividad.addView(barra,0);
setSupportActionBar(barra);
getSupportActionBar().setTitle("Listado de Recetas");
Then I try to inflate a menu.xml to the ActionBar so the code changes to this:
android.support.v7.widget.Toolbar barra =(android.support.v7.widget.Toolbar) getLayoutInflater().inflate(local.quick_stuff.R.layout.barra_herramientas,null);
barra.inflateMenu(R.menu.menu_barra);
LinearLayout layout_actividad = (LinearLayout) findViewById(R.id.cp_lista_receta);
layout_actividad.addView(barra,0);
setSupportActionBar(barra);
getSupportActionBar().setTitle("Listado de Recetas");
getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
但结果是空白的ActionBar
Menu.xml文件
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/filtro"
android:icon="@drawable/filtrado_icono"
android:title="Filtrado"
android:visible="true"
app:showAsAction="ifRoom"/>
</menu>
在一天结束的时候,我正在尝试这样做以获得灵活性,因为我希望在我的ActionBar中使用不同的menu.xml来充气。 我认为这可能有点灵活,但有太多的分支编码。
任何帮助?
答案 0 :(得分:0)
只是为了结束,如果有人需要帮助:
如果你致电setSupportActionBar(barra);
您必须覆盖onCreateOptionsMenu()
,因为活动控制了工具栏,并且菜单必须由该方法定义。所以我只是将其添加到活动代码中。
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_barra, menu);
return true;
}