จะเปลี่ยนขนาดข้อความของแถบเครื่องมือได้อย่างไร?


94

ฉันต้องการเปลี่ยนขนาดของข้อความในรูปแบบToolbar. เนื่องจากในแอปพลิเคชันของฉันToolbarข้อความมีขนาดแตกต่างกันทั้งในโหมดแนวนอนและแนวตั้ง

เป็นไปได้ไหมที่จะเปลี่ยนขนาดตัวอักษรของข้อความในToolbar?

คำตอบ:


287

ใช้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

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

4

[Optional steps 1 & 2)

  1. วางไฟล์แบบอักษรของคุณในโฟลเดอร์ "Project / app / src / main / assets / ฟอนต์ /"

จากนั้นสร้างวัตถุ 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! โปรดเพิ่มคำอธิบายเพื่อสนับสนุนคำตอบของคุณ
Mahib

1
คำตอบนี้มาจากโพสต์คุณภาพต่ำใน SO .... คุณช่วยเพิ่มความเห็นในคำตอบของคุณได้ไหม อธิบายตรรกะของคุณและให้ความเห็นเล็กน้อยเกี่ยวกับสิ่งที่โค้ดของคุณตั้งใจจะทำ สิ่งนี้จะช่วย OP แต่จะทำหน้าที่เป็นคำอธิบายสำหรับผู้ใช้ในอนาคตด้วย
Ram Ghadiyaram

หากคุณมีไอคอนการนำทางคุณควรใช้ getChildAt (1) :)
Gabor

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.