toolbar久闻其名,但项目中并没有实际使用过。toolbar代替actionbar主要是前者是一个viewGroup的控件,可以自由的定制ui,而后者是系统内置的系统级别的控件,只是提供了几个接口可以在已有的ui结构上实现用户自定义,扩展性太差。
要使用toolbar首先要在activity使用的style中修改样式,
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
这里有一个大坑!如果使用的是v7包中的AppCompatActivity
的话,在设置属性的时候,不能带android
命名空间,即android:
前缀,因为它只认app
命名空间,当然也不要带app:
前缀,不带命名空间就好。
还有一个细节就是toolbar
的高度或者minHeight
最好设置为?attr/actionBarSize
,即使用系统的actionBar的高度。
之后就是在activity中实例化toolbar,并通过setSupportActionBar(toolBar);
方法将actionBar替换为toolBar。
当然也可以直接使用Theme.AppCompat.NoActionBar
的样式,这样就不用再设置style样式了。