- - - - - - 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>