缺少工具栏菜单
MainActivity.xml
<android.support.v7.widget.Toolbar
android:id="@+id/mainToolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:title="@string/app_name"
app:titleTextColor="@android:color/white" />
<FrameLayout
android:id="@+id/main_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/mainBottomNavigation"/>
<android.support.design.widget.BottomNavigationView
android:id="@+id/mainBottomNavigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:menu="@menu/menu_bottomnavigation"
android:layout_alignParentBottom="true"
android:background="?android:attr/windowBackground"/>
</RelativeLayout>
菜单.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/exit"
android:title="@string/exit"
app:showAsAction="never"/>
</menu>
MainActivity.class
@BindView(R.id.mainToolbar) Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setSupportActionBar(toolbar);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_options_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.exit:
return true;
default:
return super.onOptionsItemSelected(item);
}
}
使用 library
ButterKnife时,需要ButterKnife.bind(...)在访问 widget 之前调用 bind 方法,但在设置布局之后:另一方面,工具栏只有在使用
setSupportActionBar(...).在您的情况下,
toolbar在调用此方法之前未初始化该字段,并且工具栏仅显示为常规小部件,例如按钮 或TextView,而不执行其功能。