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

  • 相关阅读:
    SOJ 2785_Binary Partitions
    Codeforces Round #328 (Div. 2)
    C++ fill 和memset
    SOJ 2749_The Fewest Coins
    Codeforces Round #327 (Div. 2)
    TYVJ P1013 找啊找啊找GF Label:动态规划
    TYVJ 1014 乘法游戏
    TYVJ 1011 NOIP 2008&&NOIP 2000 传纸条&&方格取数 Label:多线程dp
    错误集合
    TYVJ P1038/P1039 忠诚 标签:线段树
  • 原文地址:https://www.cnblogs.com/xing-star/p/11131044.html
Copyright © 2011-2022 走看看