27

試してみsetExpandTitleTextAppearanceましたが、うまくいきませんでした。展開されたタイトル テキストを中央揃えにしたい。

4

7 に答える 7

76

expandedTitleGravity展開されたタイトル テキストを中央揃えにするために、CollapsingToolbarLayout で使用できる属性があります。これを CollapsingToolbarLayout に追加します。

app:expandedTitleGravity="bottom|center_horizontal"
于 2015-09-19T17:36:08.243 に答える
4

@Javed、間違っていたら訂正してください。タイトルをツールバーの中央に配置したい場合は、CollapsingToolbarLayout が折りたたまれ、レイアウトは次のようになりますよね?

    <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>

次に、このトリックを実行できます(アクティビティの onCreate で実行します):

    try {
        Field declaredField = toolbar.getClass().getDeclaredField("mTitleTextView");
        declaredField.setAccessible(true);
        TextView titleTextView = (TextView) declaredField.get(toolbar);
        ViewGroup.LayoutParams layoutParams = titleTextView.getLayoutParams();
        layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT;
        titleTextView.setLayoutParams(layoutParams);
        titleTextView.setGravity(Gravity.CENTER_HORIZONTAL);
    } catch (Exception e) {
        //"Error!"
    }

重要なのは、Toolbar 内の TextView に幅のプロパティ "Wrap Content" があるため、"Match Parent" に変更する必要があることです。(この反射について詳しくはこちらをご覧ください

Android 5.1.1 および Android 4.3 でテスト済み (ほとんどどこでも動作するはずです)

于 2015-08-09T20:19:58.973 に答える
1

Nguyễn Hoàng Anh が上で述べたように、app:titleEnabledfalse に設定すると魅力的に機能しました。

このオプションを有効にすると、レイアウト インスペクタで掘り下げた後、疑わしい名前のないビューが常に のTextView内側の前、 Toolbar[上へ] ボタンが有効になっている場合は直後に追加されます。

そのため、レイアウト グラビティが正しく機能していても、疑わしいビューがToolbar.

于 2017-01-12T15:40:11.247 に答える