【问题标题】:Centering text on title bar of android app在android应用程序的标题栏上居中文本
【发布时间】:2014-02-20 04:24:45
【问题描述】:

我浏览了整个互联网,但找不到答案。有没有办法让应用程序的标题栏上的文本居中而无需创建自定义标题栏?如果是这样,我该怎么做?

感谢您的帮助!

【问题讨论】:

    标签: android android-titlebar


    【解决方案1】:
    ViewGroup decorView= (ViewGroup) this.getWindow().getDecorView(); 
    LinearLayout root= (LinearLayout) decorView.getChildAt(0); 
    FrameLayout titleContainer= (FrameLayout) root.getChildAt(0); 
    TextView title= (TextView) titleContainer.getChildAt(0); 
    title.setGravity(Gravity.CENTER);
    

    将此代码添加到您的活动的 onCreate() 中。

    【讨论】:

    • 当我添加您的代码时,我能够在模拟器上运行应用程序,但不能在设备上运行。你知道为什么吗?谢谢你。
    • 它只是无法在手机上打开并显示“不幸的是,应用程序已停止”
    • 我试过了。 Logcat 没有显示任何内容。当我将电话连接到我的电脑时,我根本没有让它工作。这很令人沮丧。
    【解决方案2】:

    在styles.xml文件中为你的ActionBar标题设置样式,

      <item name="android:actionBarStyle">@style/MyActionBar</item>
    

    MyActionBar 中的一个,

    <style name="MyActionBar"
           parent="@style/Widget.Holo.ActionBar">
        <item name="android:titleTextStyle">@style/MyActionBarTitleText</item>
    </style>
    

    MyActionBarTitleText 在哪里,

    <style name="MyActionBarTitleText"
           parent="@style/TextAppearance.Holo.Widget.ActionBar.Title">
        <item name="android:gravity">center</item>
        //and you can add many more customization here like textColor etc
    </style>
    

    这是谷歌的doc.

    【讨论】:

    • 这似乎需要大量的工作来进行居中。 :) 好的,谢谢你和@user3292108!我会试试看。
    • 乍一看是的,但随着您的熟悉,您将继续自定义操作栏,因为它提供了很大的灵活性。 :) 让我知道什么对你有用。
    • Diffy 的工作正常。当我想要更多的定制时,我会使用你的。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2015-09-11
    • 1970-01-01
    • 2017-05-02
    • 2015-11-04
    • 2015-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多