工具栏菜单(Toolbar)小记

创建菜单

  • Activity类提供了管理菜单的回调函数,需要选项菜单时,直接调用Activity的onCreateOptionsMenu(Menu)方法
  • Fragment有一套自己的选项菜单回调函数,在fragment中创建菜单,覆盖onCreateOptionsMenu(Menu, MenuInflater)方法
@Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        super.onCreateOptionsMenu(menu, inflater);
        inflater.inflate(R.menu.fragment_crime_list, menu);
}

Fragment.onCreateOptionsMenu(Menu, MenuInflater)方法是由FragmentManager负责调用的,当Activity接受操作系统的onCreateOptionsMenu(...)方法回调请求时,必须明确告诉FragmentManager:其管理的fragment应接收onCreateOptionsMenu(...)方法的调用指令,需在fragment中加入以下方法:

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setHasOptionsMenu(true);
}

响应菜单项选择

用户点击菜单项时,fragment会收到onOptionsItemSelected(MenuItem)方法的回调请求,实现菜单项响应结果直接覆写onOptionsItemSelected(MenuItem)方法

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        return super.onOptionsItemSelected(item);
    }

注意onOptionsItemSelected(MenuItem)方法返回的是布尔值,一旦完成菜单项事件处理,应返回true值以表明全部任务已完成

实现层级式导航

层级式导航可在应用内逐级向上导航,只需在AndroidManifest.xml中给需要向上逐级导航的Activity添加parentActivityName属性:


你可能感兴趣的:(工具栏菜单(Toolbar)小记)