Làm cách nào để thay đổi kích thước văn bản trên thanh công cụ?


92

Tôi muốn thay đổi kích thước của văn bản trong Toolbar. Bởi vì trong ứng dụng của tôi, Toolbarvăn bản có các kích thước khác nhau cho cả chế độ ngang và dọc.

Có thể thay đổi kích thước văn bản của văn bản trong Toolbarkhông?

Câu trả lời:


283

Sử dụng 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" />

và ghi đè kích thước tiêu đề mặc định theo kiểu tùy chỉnh:

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

Kết quả:

Ảnh chụp màn hình


Nó hoạt động, cảm ơn bạn về giải pháp! Tiết kiệm nhiều thời gian của tôi!
hetsgandhi

23

ví dụ đây là thanh công cụ của bạn

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

bạn có thể đơn giản thêm chế độ xem này

    app:titleTextAppearance="@style/yourstyle"

style.xml

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

như thế ...


đối với một số lý do android:gravity="center"không thiết lập sự liên kết làm trung tâm cho tôi ....: - /
Mobigital

5

Bạn có thể thêm một TextViewvào thanh công cụ của mình và tùy chỉnh theo ý muốn:

<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
Đây có vẻ là một câu trả lời phù hợp với các ứng dụng hỗ trợ API <21. titleTextAppearance là một giải pháp tốt nhưng chỉ hoạt động API 21 trở lên. Tuy nhiên, có một số vấn đề phức tạp mà chúng ta cần giải quyết khi sử dụng giải pháp này. Nếu bạn đang sử dụng SearchView, thì phiên bản mở rộng của chế độ xem sẽ không kéo dài cho đến cuối bên trái. Thay vào đó, nó sẽ chỉ kéo dài cho đến mép bên phải của chế độ xem văn bản tiêu đề mới được thêm vào. Vì vậy, bạn sẽ phải thực hiện một số tùy chỉnh ở đó nhưng một lần nữa đây là một trường hợp cụ thể. Theo nghĩa chung, đây là một giải pháp tốt cho bất kỳ phiên bản nền tảng nào.
Deepak GM

3

Hãy thử điều này trong 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);

Điều này được lấy từ Android-Examples.com .


3

[Optional steps 1 & 2)

  1. Đặt tệp phông chữ của bạn vào thư mục "Project / app / src / main / asset / fonts /".

Sau đó, tạo một đối tượng Kiểu chữ từ tệp phông chữ như:

Typeface typeFace = Typeface.createFromAsset(getAssets(), "fonts/font_name.ttf");
  1. Bây giờ, lấy mục con (chế độ xem tiêu đề thanh công cụ) từ thanh công cụ hiện có, thanh công cụ mặc định và chuyển đối tượng kiểu chữ mà chúng ta đã tạo ở trên.
((TextView) toolbar.getChildAt(0)).setTypeface(typeFace); // set custom typeface - font
  1. Cuối cùng, thay đổi kích thước văn bản của chế độ xem văn bản tiêu đề của thanh công cụ
((TextView) toolbar.getChildAt(0)).setTextSize(30); // set title font size

2
Chào mừng đến với SO! Vui lòng thêm một số mô tả để hỗ trợ câu trả lời của bạn.
Mahib

1
câu trả lời này xuất hiện trong các bài đăng Chất lượng thấp ở SO .... Bạn có thể thêm bất kỳ bình luận nào vào câu trả lời của mình không? Giải thích logic của bạn và đưa ra một bình luận nhỏ về những gì mã của bạn dự định làm. Điều này sẽ giúp OP, nhưng nó cũng sẽ đóng vai trò là bài bình luận cho người dùng trong tương lai
Ram Ghadiyaram

Nếu bạn có biểu tượng điều hướng, bạn nên sử dụng getChildAt (1) :)
Gabor
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.