zoukankan      html  css  js  c++  java
  • 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居中的目的,也是可以的。 

  • 相关阅读:
    【Git】分支管理
    【Java】jprofiler工具初上手
    【中间件】JMS
    【Idea】编译问题Intellij Error: Internal caches are corrupted or have outdated format
    【测试】测试用例选择
    【DevOps】
    【Unix】z/OS系统
    【数据库】表空间释放
    【数据库pojo类】Oracle数据库中各数据类型在Hibernate框架中的映射
    基于闭包实现的显示与隐藏
  • 原文地址:https://www.cnblogs.com/xing-star/p/11131044.html
Copyright © 2011-2022 走看看