zoukankan      html  css  js  c++  java
  • 动态修改ActionBar Menu的显示

    应用场景:

    在主Activity中,采用InstrumentedActivity侧边栏的方式,侧边栏的每一项对应一个Fragment,要实现不同的Fragment动态显示与隐藏ActionBar Menu。

    处理思路:

    在onCreateOptionsMenu()方法中,根据标识flag动态设置MenuItem的显示与隐藏,在切换Fragment 的地方调用:invalidateOptionsMenu()方法重新加载Menu。

    @Override
        public boolean onPrepareOptionsMenu(Menu menu) {
            return super.onPrepareOptionsMenu(menu);
        }
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            getMenuInflater().inflate(R.menu.czsm_content, menu);
            MenuItem mi = menu.findItem(R.id.action_czsm);
            if(isShowInfoFlag){
                mi.setVisible(true);
            }else{
                mi.setVisible(false);
            }
            return super.onCreateOptionsMenu(menu);
        }
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            if(isShowInfoFlag && !isCheckedCur){
                switch(item.getItemId()){
                case R.id.action_czsm:
                    Fragment fragment = null;
                    ft = fm.beginTransaction();
                    fragment = new  CzsmFragment();
                    isCheckedCur = true;//表示当前点击过了
                    ft.replace(R.id.content_frame, fragment);
                    ft.commit();
                    break;
                }
            }
            
            if (mDrawerToggle.onOptionsItemSelected(item)) {
                return true;
            }
            
            return super.onOptionsItemSelected(item);
        }
  • 相关阅读:
    腾讯//最长回文子串
    腾讯//最长回文子串
    马拉车算法
    马拉车算法
    简单实操_Github创建本地仓库及SSH KEY
    Linux5_磁盘 分区 挂载点的理解
    Linux4_手动分区方案
    Linux3_什么是Uboot
    stdin stdout stderr 标准I/O流
    卢克,学着去读源代码
  • 原文地址:https://www.cnblogs.com/yshyee/p/4073976.html
Copyright © 2011-2022 走看看