zoukankan      html  css  js  c++  java
  • 【Android】嵌套Fragment无法接收onCreateOptionsMenu事件的问题


    前言

    嵌套的二级Fragment无法接收onCreateOptionsMenu事件的问题,设置了setHasOptionsMenu也不管用

    声明
      欢迎转载,但请保留文章原始出处:)
        博客园:http://www.cnblogs.com

        农民伯伯: http://www.cnblogs.com/over140/ 

    正文

    补充说明:

    如果通过缓存Fragment手动调用二级Fragment,可能会出现莫名其妙的问题,比如更多Menu不显示。

    解决办法:

    在一级Fragment中添加Menu,可以在一级onOptionsItemSelected中手动调用二级的此方法来处理相关事件。

    示例代码:

        @Override
        public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
            switch (getSelectedPosition()) {
            case 1:
                inflater.inflate(R.menu.menu1, menu);
                break;
            case 2:
                inflater.inflate(R.menu.menu2, menu);
                break;
            case 0:
            default:
                inflater.inflate(R.menu.menu3, menu);
                break;
            }
        }

        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            Fragment fragment = getFragmentByPosition(getSelectedPosition());
            if (fragment != null)
                fragment.onOptionsItemSelected(item);
            return super.onOptionsItemSelected(item);
        }

    代码说明:

    示例代码是一级Fragment,getFragmentByPosition返回的是二级Fragment。

    相关文章:

    【Andorid X 项目笔记】嵌套Fragment的使用(5) 


  • 相关阅读:
    四层和七层负载均衡的区别-转
    MySQL高可用方案一(MHA)
    EC2.0开启多规格后,编辑无法获取规格数据
    PHP中取出字符串中的空格 逗号
    ECSTORE1.2 重启开启信任登陆模块(删除KEY)
    云体检通用代码补丁
    zendguard安装破解
    MySQL历史版本下载(官方)
    linux watch命令
    python判断值是否为空
  • 原文地址:https://www.cnblogs.com/over140/p/3017010.html
Copyright © 2011-2022 走看看