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);
setSupportProgressBarIndeterminateVisibility(false);
setSupportProgressBarIndeterminateVisibility(true);<span style="font-size: 24px;">
</span>