我的应用有minSDKVersio=11
和targetSDKVersion=22
。我在运行API14的GalaxyNexus仿真器上运行应用程序。
我的活动在布局中有一个工具栏。工具栏是从android.support.v7.widget.Toolbar
库中导入的。
以下是填充工具栏的菜单资源的内容。文件名是homeview_menu_common.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:id="@+id/action_favorite"
android:title="XXX"
app:showAsAction="always"/>
<item
android:id="@+id/homeview_toolbar_overflow_logout"
android:title="@string/homeview_toolbar_overflow_logout"
app:showAsAction="always">
</item>
</menu>
我的问题是:根本不显示溢出菜单。由于GalaxyNexus没有硬件选项按钮,因此溢出菜单应该在Toolber中可见。我还发现永远不会调用onCreatOptionsMenu(Menu menu)
。
更新:发布活动代码
public class HomeView extends GenericActivity<HomeOps.View, HomeOps> implements HomeOps.View {
@Override
protected void onCreate(Bundle savedInstanceState) {
//super.onCreate(savedInstanceState);
setContentView(R.layout.homeview_layout);
super.onCreate(savedInstanceState, HomeOps.class, this);
Toolbar toolbar = (Toolbar) findViewById(R.id.homeview_toolbar);
Boolean show = toolbar.showOverflowMenu();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.homeview_menu_common, menu);
return super.onCreateOptionsMenu(menu);
}
}
答案 0 :(得分:0)
1)将app:showAsAction="always"
替换为app:showAsAction="never"
2)您的基本活动实施应如下所示:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.homeview_menu_common, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_favorite:
// Do your stuff for favorite menu item
break;
case R.id.homeview_toolbar_overflow_logout:
// Do your stuff for homeview_toolbar_overflow_logout menu item
break;
}
return super.onOptionsItemSelected(item);
}
}
3)使用Theme.AppCompat.Light.DarkActionBar
作为您的活动主题。如果你没有&#39;
我想在您的主题中添加ActionBar
,请务必在setSupportActionBar(toolbar);
中致电onCreate()
:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
Toolbar toolbar = (Toolbar) findViewById(R.id.homeview_toolbar);
setSupportActionBar(toolbar);
}
答案 1 :(得分:0)
我终于解决了以下问题:
使用Toolbar.inflateMenu()
来扩充工具栏中的菜单项。
使用Toolbar.setOnMenuItemClickListener()
设置点击监听器。