如何使CollapsingToolbarLayout的标题居中?

时间:2015-06-15 13:19:31

标签: android android-collapsingtoolbarlayout

我尝试了setExpandTitleTextAppearance,但它没有用。我想将扩展的标题文本居中。

6 个答案:

答案 0 :(得分:16)

在我的用例中,我将app:titleEnabled设置为false,无论如何我都不需要它。之后,我的引力在工具栏布局中得到了正确的尊重。

答案 1 :(得分:3)

@Javed,如果我错了,请更正我,你想让标题居于工具栏中,然后折叠CollapsingToolbarLayout,你的布局是这样的,对吗?

/* allows user to play one mp3 at a time */

/* declare variables: get tag from html */
var audios = document.getElementsByTagName("audio");

var links = document.getElementsByTagName("a");

/* bind() is used for binding audio attribute and parameters of a function call, audio is the current audio element played( comes from the binding above), we compare each element in audios with this, and pause all those which are not matching. */

for (var i=0; i<audios.length;i++)  {
  audios[i].onplay = pauseAllAudios.bind(null, audios[i]); 
}

function pauseAllAudios(audio) {
    for(var i=0; i<audios.length;i++)
       if(audios[i]!=audio)  {
         audios[i].pause();    
       } else if (links.click() ) {
            audios[i].stop();    
      }
};

然后你可以做这个伎俩(我在onCreate of the Activity中这样做):

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapsing_toolbar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_scrollFlags="scroll|exitUntilCollapsed"
        app:contentScrim="?attr/colorPrimary"
        app:expandedTitleMarginStart="48dp"
        app:expandedTitleMarginEnd="64dp"
        android:fitsSystemWindows="true">

        <ImageView
            android:id="@+id/image"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:scaleType="centerCrop"
            android:fitsSystemWindows="true"
            app:layout_collapseMode="parallax"/>

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
            app:layout_collapseMode="pin" />

    </android.support.design.widget.CollapsingToolbarLayout>

关键是工具栏中的TextView具有宽度属性&#34; Wrap Content&#34;,因此我们需要将其更改为&#34; Match Parent&#34;。 (查看有关此反射的更多信息here

在Android 5.1.1和Android 4.3上测试过(应该可以在任何地方使用)

答案 2 :(得分:2)

如果您尝试将标题置于折叠状态,可以使用

android:paddingEnd="70dp"
android:paddingRight="70dp"
像这样:

<android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsing_toolbar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:paddingEnd="70dp"
            android:paddingRight="70dp"
            app:collapsedTitleGravity="center_horizontal"        
            app:expandedTitleGravity="start"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:layout_collapseMode="pin">

            </android.support.v7.widget.Toolbar>

        </android.support.design.widget.CollapsingToolbarLayout>

答案 3 :(得分:0)

正如NguyễnHoàngAnh所说,将app:titleEnabled设为false就像魅力一样。

启用该选项后,在使用布局检查器进行一些挖掘之后,始终在TextViewToolbar之前添加可疑的未命名视图,在“向上”按钮之后(如果已启用) )。

因此,即使布局重力正常工作,一些可疑视图也会占用Toolbar内的所有额外空格。

答案 4 :(得分:0)

  

您可以在折叠的和   通过以下方式扩展状态

处于展开状态,

app:expandedTitleGravity="center" 

处于折叠状态,

app:collapsedTitleGravity="center"

我认为这可能对您有帮助

答案 5 :(得分:0)

将此内容包含在折叠的工具栏xml中 对于折叠: app:collapsedTitleGravity="center_vertical|center_horizontal"

展开 app:expandedTitleGravity="center_vertical|center_horizontal"