• Android Toolbar中的title居中问题


    版权声明:本文为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居中的目的,也是可以的。 

  • 相关阅读:
    React-精华版
    国内优秀npm镜像推荐及使用
    GitHub 配置指南
    Nodejs之WebSocket
    js验证连续两位数字递增或递减和连续三位数字相同
    JS魔法堂:LINK元素深入详解
    phpstorm将多个int数字拼接成字符串
    php中使用curl来post一段json数据
    MySQL索引使用:字段为varchar类型时,条件要使用''包起来
    MySQL中enum类型数据,要传入字符串
  • 原文地址:https://www.cnblogs.com/xing-star/p/11131044.html
Copyright © 2020-2023  润新知