关于android应用的toolbar(actionbar)不能填满布局解决

原创 2015年11月19日 14:35:10

这是我的第一篇博客,之前没有正式写过博客,一直想尝试着学着写一点东西,不管是利己还是利人,写的不好大家不要喷

最近写项目遇到一些问题关于actiobar布局不能填满actionbar的问题

下面我就来说一说我从遇到这个问题一直到解决问题的过程,希望能帮助遇到和我一样问题的童鞋,也给自己做一个标记

做项目前都是用布局代码<include ……/>来添加每个activity的标题,也没感觉有什么不方便,直到后台偶然看到一个封闭得很好的app源码是把应用的标题放在公共activity中使

用,其中用到了一个我以前没用过的东西——actionbar,我这人看到技术上的新东西总是喜欢去看看自己能不能拿来用,于是开始随便做一个demo来测试actionbar。

先写了个类继承ActionBarActivity,刚写上去就发现已经被废弃了提示改成AppCoompatActivity,看了AppCoompatActivity的源码只是减少了ActionBarActivity的一层继承而已,这没

什么问题,继续进行。参照看到的资源把以下代码添加进我的demo

actionBar = getSupportActionBar();

LayoutInflater inflator = getLayoutInflater();
View topbar = inflator.inflate(R.layout.activity_main,null);
ActionBar.LayoutParams param = new ActionBar.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
        ViewGroup.LayoutParams.WRAP_CONTENT);

actionBar.setCustomView(topbar, param);
actionBar.setDisplayShowCustomEnabled(true);
添加进去后成功运行,没有崩这让我感到很幸运,有一点点成就感。由于多看了界面一会发现actionbar有边框,我写的布局没有填满,瞬间就感觉很奇葩,我没有写边距怎么会出现 这种情况。

很是纳闷,然后网上找各种解决办法

总结了下网上的解决办法有以下几种

1.重写style属性

2.在加载布局文件的时候new一个新LinearLayout

View actionBarButtons = inflater.inflate(R.layout.edit_event_custom_actionbar,
                    newLinearLayout(mContext), false);

试过这些方法无果后又回到我的代码上找原因,担心是不是无意间设置了什么属性导致,结果还是没办法

对比了某位大神的代码后发现他用的v7包是19的,而我的是22的,估计原因出在这里,于是我把v7包换成19的,果不其然,问题果然解决了

这种方法解决了却不能让我满意,新的包怎么可能比老的包还差呢,于是继续找资料,百度上已经被我都看得差不多了,翻墙去google看了下官方说明,毕竟这才是最权威 的说明。官网上提示新的actionbar已经更换成toolbar,说是比actionbar更好用,难怪找半天找不到资料,原来换了组件名字了。按照官网提示进行了各种试验,官网还介绍了使用logo,标题title,副标题subtitle以及导航图标navigationicon等用法,看了效果后觉得与其了解这么多组件还不如自己写一个布局直接填进去,下面我就不费话,直接把界面布局写出来


好了,在这个布局里面可以尽情的发挥你的创意写出自己想要的效果。然后写完后一运行发现确实好多了,还差一点就是

左边还有那么 一些瑕疵,再激动的心情去找资料,发现加上两句神代码


这下ok了,完美了。

最后 加上

setOnMenuItemClickListener
监听方法,想怎么玩就怎么玩。

此方法只是我遇到的问题,如果大家有类似的其它问题欢迎发出来一起探讨

【Android】 toolbar左边留有空白、toolbar两端空白、toolbar两端不能填满布局问题

最近自定义Toolbar之后,发现左侧不能完全填充,总是留一点空白,经过查看新发布的V7的支持包中的style发现了解决方法...
  • qq_23191031
  • qq_23191031
  • 2017年02月23日 10:15
  • 1073

ScrollView嵌套LinearLayout布局不能撑满全屏的问题

当ScrollView里的元素想填满ScrollView时,使用"fill_parent"或者"match_parent"是不管用的,必需为ScrollView设置:android:fillViewp...
  • cdye_1234
  • cdye_1234
  • 2017年02月04日 10:12
  • 3215

Android ActionBar Tab的宽度

android tablet项目中主导航框架是一个ActionBar,一共有四个Tab,各个Tab上显示的是文字。在意大利语环境下,有个Tab文字翻译特别长,以至于每个tab都很宽(默认情况下,各个t...
  • fengchi4040
  • fengchi4040
  • 2017年01月02日 14:49
  • 471

项目实战-使用Toolbar替代ActionBar

Toolbar 自从MaterialDesign开始,Android官方就开始使用Toolbar替代了原来的ActionBar,现在Toolbar已经加入Support兼容包。Toolbar是一个相比...
  • xilove102
  • xilove102
  • 2016年08月30日 16:34
  • 311

一探ActionBar和ToolBar的区别

ActionBar ActionBar是一个确定用户位置的窗口功能,并且能提供用户操作和导航的模块。使用ActionBar能够为用户提供一个熟悉的界面进行界面的切换,这个切换能够使系统更优雅是适应不...
  • dangnianmingyue_gg
  • dangnianmingyue_gg
  • 2016年12月30日 10:22
  • 955

Android 利用Toolbar打造统一风格的标题栏

如何利用Toolbar打造统一风格的标题栏,并且可以动态设置当前页面Title,以及返回上一级图标。一、首先,当然需要设置所有的Activity均不需要ActionBar,在标签设置style: ...
  • MyLero
  • MyLero
  • 2016年10月25日 17:04
  • 4179

自定义toolbar布局不居中(已解决)

在自定义toolbar的布局时,如果内部使用的布局继承自ViewGroup(比如LinearLayout、RelativeLayout等),则会在左侧出现一块空白,导致整个toolabr布局右移。代码...
  • yypccc
  • yypccc
  • 2016年12月16日 16:16
  • 1255

Android toolbar阴影悬浮高亮效果

Android toolbar阴影悬浮高亮效果在android api 21一下toolbar是没有阴影效果的,后面找到解决api21以下实现阴影效果代码如下:acticity.xml文件:...
  • u012416928
  • u012416928
  • 2015年08月29日 22:52
  • 6229

android 获得ToolBar中title的间距以及获得控件宽高

效果图有个需求,要让ToolBar下方的控件与Title左对齐,这样就要得到Title距离左边屏幕的距离,然后在程序中设置setMargins,问题在于,ToolBar中没有获取Title间距的方法,...
  • jifashihan
  • jifashihan
  • 2017年01月04日 15:33
  • 878

Android Toolbar使用系统原生返回键,并改变其颜色,自定义图片替换系统原生返回键

设置Toolbar中和自己app风格一致的系统返回键。
  • lizhiying61f
  • lizhiying61f
  • 2016年05月03日 14:50
  • 14147
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于android应用的toolbar(actionbar)不能填满布局解决
举报原因:
原因补充:

(最多只允许输入30个字)