美文网首页
工具栏菜单(Toolbar)小记

工具栏菜单(Toolbar)小记

作者: 向着远方奔跑 | 来源:发表于2017-01-17 23:28 被阅读0次

    创建菜单

    • 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属性:

    <activity
           android:name=".CrimePagerActivity"
           android:label="@string/app_name"
           android:parentActivityName=".CrimeListActivity"
           ></activity>
    

    相关文章

      网友评论

          本文标题:工具栏菜单(Toolbar)小记

          本文链接:https://www.haomeiwen.com/subject/yqkvbttx.html