解决自定义actionbar 两边空隙
网上找的代码
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayShowTitleEnabled(false);
View customView = getLayoutInflater().inflate(R.layout.main_action_bar, null);
actionBar.setCustomView(customView);
Toolbar parent =(Toolbar) customView.getParent();
parent.setPadding(0,0,0,0);//for tab otherwise give space in tab
parent.setContentInsetsAbsolute(0,0);
private void initTitle() {
try {
mActionBar = getSupportActionBar();
} catch (Exception e) {
e.printStackTrace();
return;
}
if (mActionBar == null) {
return;
}
mActionBar.setDisplayHomeAsUpEnabled(false);
mActionBar.setDisplayShowTitleEnabled(false);
mActionBar.setDisplayShowHomeEnabled(false);
mActionBar.setDisplayShowCustomEnabled(true);
if (mActionBar != null) {
//mActionBar.setDisplayHomeAsUpEnabled(true);
if (Build.VERSION.SDK_INT >= 21) {
mActionBar.setElevation(0);
}
}
View view = getLayoutInflater().inflate(R.layout.layout_base_title, null);
ActionBar.LayoutParams layoutParams =
new ActionBar.LayoutParams(ActionBar.LayoutParams.MATCH_PARENT,
ActionBar.LayoutParams.MATCH_PARENT);
mActionBar.setCustomView((View) view, layoutParams);
if (((View) view).getParent() instanceof Toolbar) {
Toolbar parent = (Toolbar) ((View) view).getParent();
parent.setContentInsetsAbsolute(0, 0);
}
}
主要是parent.setContentInsetsAbsolute(0, 0);设置
contentInsetLeft、contentInsetRight、contentInsetStart、contentInsetEnd:Toolbar的左右两侧都是默认有16dp的padding的,如果你需要让Toolbar上的内容与左右两侧的距离有变化,便可以通过以上四个属性来进行相应的设置。
比如要让内容紧贴左侧或起始侧便可以将contentInsetLeft或contentInsetStart设为0。
对应方法:setContentInsetsRelative(int,int)——对应start和end
setContentInsetsAbsolute(int,int)——对应left和right
可以参考下一篇文章