版权声明:本文为xing_star原创文章,转载请注明出处!
本文同步自http://javaexception.com/archives/167
Android Toolbar中的title居中问题
从Toolbar出来后,用Toolbar代替ActionBar越来越常见了。当然了也有App是自定义TitleBar,保持苹果风格的效果。
近期碰到网易云信的Actionbar那块都是用Toolbar来实现的,导致Title居左,跟整个app的风格不搭,需要修改。
本文想要记录的是,如何让Toolbar实现title文字水平居中。在android的activity页面里,使用Toolbar.setTitle(“Title”)后,title的位置是位于左边的,太过于靠左了。在Toolbar的源代码中,也不找到相关的Api让其居中显示,那么只能另想办法了。
参考如下代码来解决问题,xml的布局为:
<android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="@color/white" app:titleTextAppearance="@style/Toolbar.TitleText" app:subtitleTextAppearance="@style/Toolbar.SubTitleText"> <TextView android:id="@+id/tv_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:lines="1" android:textColor="@color/black" android:ellipsize="end" android:textSize="16dp" /> </android.support.v7.widget.Toolbar>
就是在Toolbar这个父容器下,添加一个TextView控件,让它作为Title显示,隐藏掉Toolbar的TitleView控件。
封装一个java方法
private void setTitleText(CharSequence title) { if (tvTitle != null) { toolbar.setTitle(""); tvTitle.setText(title); } else { toolbar.setTitle(title); } }
用这种取巧的方式来达到Title居中的目的,也是可以的。