欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android Toolbar中的title居中问题

程序员文章站 2022-04-15 14:05:21
版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/167 Android Toolbar中的title居中问题 从Toolbar出来后,用Toolbar代替ActionBar越来越常见了。当然了也有App是自定 ......

版权声明:本文为xing_star原创文章,转载请注明出处!

本文同步自

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居中的目的,也是可以的。