最近学了自定义ActionBar,ActionBar就是我们打开Android软件时,显示在最上面的标题栏所在,当然了,它还包括了一些menu和图片等。Android官方为我们提供了多种ActionBar的模式,即便如此,但还是不能完全的满足开发需求,因为官方提供的样式基本都是标题靠左显示,但是我们一般需要居中显示,颜色字体等也根据不同的软件,有不同的需求,所以考虑用自定义。
如果需要将标题居中网上的资料一般都是在java代码中,
使用actionbar.setDisplayShowTitleEnabled(false);隐藏标题栏,
然后使用actionbar.setDisplayShowCustomEnabled(true);设置在ActionBar中可以显示自定义的View,再然后就是设置加载自定义View了
actionbar.setCustomView(
View.inflate(this, R.layout.title, null),//R.layout.title是一个自定义Layout,可以用一个textview试试
new ActionBar.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT,Gravity.CENTER));
根据以上方法就能实现标题栏居中显示了,但是这会有一个问题,那就是你会发现,即便你隐藏了title,但是程序启动时还是会先显示一下原来的title然后再隐藏title,显示你的自定义标题栏,这就是因为onCreate先加载了布局文件然后我们才设置的title隐藏,不能满足需求,所以考虑在布局的时候就隐藏title,在styles文件中设置一个Myactionbar,这个ActionBar的parent为你现在的ActionBar,然后再通过设置android:displayOptions这个属性来实现。
<style name="MyStyle" parent="AppTheme">
<item name="android:actionBarStyle">@style/Myactionbar</item>
</style>
<style name="Myactionbar" parent="@android:style/Widget.Holo.Light.ActionBar.Solid">
<item name="android:background">#fff</item>
<item name="android:displayOptions">useLogo|showHome</item>
</style>