設置ActionBar和TabBar顯示模式
ActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS)即可另Actionbra使用tab作爲導航模式;
ActionBar.addTab(Tab tab)使用該方法爲你的導航添加具體的Tab;
當屏幕寬度較窄時,Tab顯示在Actionbar下一行,總共兩行,常見於手機豎屏時;
根據Developer官方Holo Design指導,當屏幕寬度足夠時,Tab將嵌入Actionbar顯示爲一行,如大屏Pad、手機橫屏時;
我們可以通過以下的代碼設置強制現實爲一行:
private void setTabBarNarrowMode(){
try{
Method setHasEmbeddedTabsMethod = mActionBar.getClass().getDeclaredMethod(
"setHasEmbeddedTabs", boolean.class);
setHasEmbeddedTabsMethod.setAccessible(true);
setHasEmbeddedTabsMethod.invoke(mActionBar, true);
} catch (Exception e){
e.printStackTrace();
}
}
如果改爲強制兩行顯示:
setHasEmbeddedTabsMethod.invoke(mActionBar, false);
Android 5.0 消除ActionBar下面的陰影
在Android 5.0上你會發現ActionBar
下面默認會出現一條陰影,如下設置可以消除陰影:
getActionBar().setElevation(0);
Android 5.0之前可以用下面代碼消除陰影:
<item name="android:windowContentOverlay">@null</item>
設置ActionBar左右邊距
View v = findViewById(R.id.action_bar);
if(v instanceof Toolbar){
Toolbar toolbar = (Toolbar) v;
toolbar.setContentInsetsAbsolute(getResources().getDimensionPixelOffset(R.dimen.toolbar_content_inset),
getResources().getDimensionPixelOffset(R.dimen.toolbar_content_inset));
}
實現點擊ActionBar返回按鈕返回
設置 ActionBar:
actionBar.setDisplayHomeAsUpEnabled(true)
重寫
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
或者是在 Manifest 文件中配置:
android:parentActivityName=".MainActivity"
一些設置
- 顯示後退按鈕:actionBar.setDisplayHomeAsUpEnabled(true)
- 顯示標題:actionBar.setDisplayShowTitleEnabled(true)
- 替換後退圖標:actionBar.setHomeAsUpIndicator(@DrawableRes int resId)