设置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)