Actionbarsherlock Demo 浅析 :Feature Toggles

本文详细介绍ActionBar功能切换的各种方法,包括显示与隐藏ActionBar、导航栏模式切换、TABS导航功能、ActionItems的添加与删除等。此外,还介绍了如何设置主副标题栏、自定义视图及各类进度条的显示与隐藏。

- - - - - - Feature Toggles- - - - - - -功能切换


功能1:ActionBar的显示与隐藏

               getSupportActionBar().show();   //ActionBar显示</span>
               getSupportActionBar().hide();   //ActionBar隐藏</span>


功能2:导航栏的模式切换

               getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);  //STANDARD模式</span>


              Context context = getSupportActionBar().getThemedContext();
              ArrayAdapter<CharSequence> listAdapter = ArrayAdapter.createFromResource(context, R.array.locations, R.layout.sherlock_spinner_item);   //Locations数据里面就是Spinner里的数据
              listAdapter.setDropDownViewResource(R.layout.sherlock_spinner_dropdown_item);                                                                             getSupportActionBar().setListNavigationCallbacks(listAdapter, null);                                                                                      getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);     //LIST模式


                Button tabAdd = (Button)findViewById(R.id.display_tab_add);
                tabAdd.setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick(View view) {
                         ActionBar.Tab newTab = getSupportActionBar().newTab();
                         if (RANDOM.nextBoolean()) {//下面的图标和文字都是随机出现的,还有可能出去进度条
                                      newTab.setCustomView(R.layout.tab_custom_view);
                         } else {
                                      boolean icon = RANDOM.nextBoolean();
                         if (icon) {
                                      newTab.setIcon(R.drawable.ic_title_share_default);
                         }
                         if (!icon || RANDOM.nextBoolean()) {
                                      newTab.setText("Text!");
                         }
                   }
                         newTab.setTabListener(FeatureToggles.this);
                        getSupportActionBar().addTab(newTab);
               }
        });
        //模拟Tabadd的点击!所以能够一开始就添加了tab
        tabAdd.performClick();
        tabAdd.performClick();
        tabAdd.performClick();                                                                                                                                    getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);//TABS模式



功能3:TABS导航功能

        Add功能就是上面的代码;

Select Random功能:

findViewById(R.id.display_tab_select).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (getSupportActionBar().getTabCount() > 0) {
                    getSupportActionBar().selectTab(
                            getSupportActionBar().getTabAt( //选定当前的TAB页
                                    RANDOM.nextInt(getSupportActionBar().getTabCount())
                            )
                    );
                }
            }
        });
Remove 功能:

  findViewById(R.id.display_tab_remove).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (getSupportActionBar().getTabCount() > 0) {
                    getSupportActionBar().removeTabAt(getSupportActionBar().getTabCount() - 1);//因为都是从0开始
                }
            }
        });
Remove All 功能:

findViewById(R.id.display_tab_remove_all).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                getSupportActionBar().removeAllTabs();
            }
        });</span>


功能4:Action Items 的添加与删除

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        for (int i = 0; i < items; i++) {
            menu.add("Text")
               .setIcon(R.drawable.ic_title_share_default)
               .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
        }
        return super.onCreateOptionsMenu(menu);
    }
findViewById(R.id.display_items_add).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                items += 1;
                invalidateOptionsMenu();   //重新创建menu,实现Add功能
            }
        });


findViewById(R.id.display_items_clear).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                items = 0;
                invalidateOptionsMenu();  //重新创建menu,实现Remove All功能
            }
        });

MenuItem.SHOW_AS_ACTION_WITH_TEXT标志:表示就算这个Item设置了icon,仍然只显示文字。


功能5:Action Bar 主标题栏的显示与隐藏

         getSupportActionBar().setDisplayShowTitleEnabled(true);    //显示主标题栏
         getSupportActionBar().setDisplayShowTitleEnabled(false);    //隐藏主标题栏

功能6:Action Bar 副标题栏的显示与隐藏

        getSupportActionBar().setSubtitle("The quick brown fox jumps over the lazy dog.");
        getSupportActionBar().setSubtitle(null);

功能7:自定义视图的显示与隐藏

        getSupportActionBar().setCustomView(R.layout.custom_view);
        getSupportActionBar().setDisplayShowCustomEnabled(false);
        getSupportActionBar().setDisplayShowCustomEnabled(true);

功能8:Home Action Item 的显示与隐藏

        getSupportActionBar().setDisplayShowHomeEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(false);

功能9:Logo 的显示与隐藏

        getSupportActionBar().setDisplayUseLogoEnabled(true);
        getSupportActionBar().setDisplayUseLogoEnabled(false);

功能10:Home As Up 显示与隐藏

        getSupportActionBar().setDisplayHomeAsUpEnabled(false);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

功能11:有进度显示的进度条的显示与隐藏

        requestWindowFeature(Window.FEATURE_PROGRESS);
        setSupportProgressBarVisibility(false);
        setSupportProgressBarVisibility(true);//显示带进度显示的进度条
        setSupportProgress(RANDOM.nextInt(8000) + 10);

功能12:无进度显示的进度条的显示与隐藏

       requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);       
       setSupportProgressBarIndeterminateVisibility(false);
       setSupportProgressBarIndeterminateVisibility(true);<span style="font-size: 24px;">
</span>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值