Actionbarsherlock Demo 浅析 :Feature Toggles

- - - - - - 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();
            }
        });

功能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);      &nbsp;
setSupportProgressBarIndeterminateVisibility(false);
setSupportProgressBarIndeterminateVisibility(true);<span style="font-size: 24px;">
</span>
posted @ 2015-08-05 20:10  黑泡man  阅读(209)  评论(0编辑  收藏  举报