ツールバーのテキストサイズを変更する方法


92

でテキストのサイズを変更したいToolbar。私のアプリケーションでToolbarは、横長モードと縦長モードの両方でテキストのサイズが異なるためです。

のテキストのテキストサイズを変更することは可能Toolbarですか?

回答:


282

使用app:titleTextAppearance

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="?actionBarSize"
    android:id="@+id/toolbar"
    app:titleTextAppearance="@style/Toolbar.TitleText" />

カスタムスタイルでデフォルトのタイトルサイズを上書きします。

<style name="Toolbar.TitleText" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
    <item name="android:textSize">18sp</item>
</style>

結果:

スクリーンショット


うまくいきました、解決策をありがとう!私の時間の多くを節約しました!
hetsgandhi

23

たとえばこれはあなたのツールバー

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    android:gravity="center"
    android:minHeight="?attr/actionBarSize"
    app:theme="@style/ThemeOverlay.AppCompat.ActionBar" />

このビューを簡単に追加できます

    app:titleTextAppearance="@style/yourstyle"

style.xml

  <style name="yourstyle" parent="@style/Base.TextAppearance.AppCompat.Title">
    <item name="android:textSize">20sp</item>
</style>

そのように...


何らかの理由でandroid:gravity="center"、中央揃えが設定されていません...:-/
Mobigital 2017

5

TextViewツールバーに追加して、必要に応じてカスタマイズできます。

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_height="wrap_content"
    android:layout_width="match_parent">
    <TextView
        android:id="@+id/toolbar_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/app_name"
        android:textSize="25sp"/>
</android.support.v7.widget.Toolbar>

4
これは、API <21をサポートするアプリに適した答えのようです。titleTextAppearanceは優れたソリューションですが、API 21以上でのみ機能します。ただし、このソリューションを使用する場合に対処する必要があるいくつかの複雑な点があります。SearchViewを使用している場合、ビューの拡張バージョンは左端まで伸びません。代わりに、新しく追加されたタイトルテキストビューの右端までしか拡大しません。したがって、そこでカスタマイズを行う必要がありますが、これも特定のケースです。一般的な意味で、これはすべてのプラットフォームバージョンに適したソリューションです。
Deepak GM、

3

これを試してくださいonCreate

android.support.v7.app.ActionBar actionbar = getSupportActionBar();
TextView textview = new TextView(MainActivity.this);
RelativeLayout.LayoutParams layoutparams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);

textview.setLayoutParams(layoutparams);
textview.setText(getString(R.string.your_string));
textview.setTextColor(Color.WHITE);
textview.setTextSize(18);

actionbar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
actionbar.setCustomView(textview);

これはAndroid-Examples.comから取得しています。


3

[Optional steps 1 & 2)

  1. フォントファイルを「Project / app / src / main / assets / fonts /」フォルダに配置します。

次に、フォントファイルからTypefaceオブジェクトを次のように作成します。

Typeface typeFace = Typeface.createFromAsset(getAssets(), "fonts/font_name.ttf");
  1. 次に、既存のツールバー(デフォルトのツールバー)から子アイテム(ツールバータイトルのテキストビュー)を取得し、上で作成した書体オブジェクトを渡します。
((TextView) toolbar.getChildAt(0)).setTypeface(typeFace); // set custom typeface - font
  1. 最後に、ツールバーのタイトルテキストビューのテキストサイズを変更します。
((TextView) toolbar.getChildAt(0)).setTextSize(30); // set title font size

2
SOへようこそ!回答を裏付ける説明を追加してください。
マヒブ

1
この回答はSOの低品質の投稿に含まれていました...回答にコメントを追加できますか?ロジックを説明し、コードの目的を少し説明します。これはOPに役立ちますが、将来のユーザーの解説としても機能します
Ram Ghadiyaram

あなたは、ナビゲーションアイコンを使用している場合は、getChildAt(1):)使用する必要があります
ガボール
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.