2012-10-15 41 views
37

Có một ActionBar trên mỗi ứng dụng Android 4.0 và nó có tiêu đề. Tôi cần phải làm cho kích thước này ít hơn. Nhưng tôi không hiểu làm thế nào tôi có thể làm điều đó, bởi vì ActionBar không cung cấp phương pháp công cộng cho nó. Ghi chú: Tôi không muốn sử dụng chế độ xem tùy chỉnh.Làm cách nào để thay đổi kích thước văn bản của tiêu đề trên Thanh tác vụ?

+0

Giải pháp tốt, sạch ở đây: http://stackoverflow.com/a/29266326/1617737 –

Trả lời

3

Kích thước của văn bản trong Android ActionBar là tiêu chuẩn.

Kể từ ICS, Android hiện phát triển một tiêu chuẩn để các ứng dụng (hy vọng) tuân theo cùng nguyên tắc về giao diện người dùng và nguyên tắc thiết kế.

http://developer.android.com/guide/practices/ui_guidelines/index.html

Đây là lý do tại sao bạn không thể thay đổi nó.

Tuy nhiên, nếu bạn vẫn muốn làm như vậy, bạn có thể sử dụng Chủ đề tùy chỉnh hoặc có thể triển khai ActionBar (ngã ba) và sửa đổi nguồn: https://github.com/johannilsson/android-actionbar để kiểm soát tối đa.

+3

Bạn có thể. Nhưng bạn không nên. Chrome của Android được thiết kế bởi các chuyên gia UI, người nghiên cứu cách người dùng tương tác với thiết bị và tối ưu hóa giao diện và vị trí của tất cả các yếu tố giao diện người dùng để tạo điều kiện tương tác tốt. Sửa đổi chrome sẽ làm cho một ứng dụng ít sử dụng hơn và làm người dùng thất vọng. – 323go

47

Thực tế, bạn có thể làm những gì bạn muốn tùy chỉnh Thanh tác vụ. Nó phải được thực hiện thông qua Theme. Bạn có thể làm một cái gì đó như thế này:

<style name="Theme.YourTheme" parent="android:style/Theme"> 
    <item name="android:actionBarStyle">@style/Theme.YourTheme.Styled.ActionBar</item> 
</style> 

<style name="Theme.YourTheme.Styled.ActionBar"> 
    <item name="android:titleTextStyle">@style/Theme.Viadeo.Styled.YourTheme.TitleTextStyle</item> 
</style> 

<style name="Theme.YourTheme.Styled.ActionBar.TitleTextStyle" parent="@android:style/Widget.TextView"> 
    <item name="android:textSize">12sp</item> 
</style> 
+2

Cảm ơn Aurélien!Bạn nên xem xét sử dụng sp inshead của dp cho kích thước văn bản ;-) – gingo

+2

bạn đang phải :) –

+8

Thay vì mã hóa cứng bất kỳ kích thước nào, bạn có thể xem xét kế thừa từ 'parent =" @ android: style/TextAppearance.Large "'. Điều đó sẽ cung cấp cho bạn kích thước văn bản lớn hơn tiêu chuẩn, bất kể bạn đang sử dụng thiết bị nào. –

18

Bạn luôn có thể làm một cái gì đó như thế này:

ActionBar actionBar = getActionBar(); 
actionBar.setTitle(Html.fromHtml("<small>YOUR TITLE</small>")); 
+0

không hoạt động này, bạn sẽ phải thêm textview – Amrut

+0

Làm việc cho tôi, sử dụng Sherlock –

+0

thats làm việc tốt và nó làm việc cho tôi – Milaaaad

7

trên hệ thống của tôi, res/phong cách AppTheme có một lưu ý rằng

<!-- All customizations that are NOT specific to a particular API-level can go here. --> 

và điều này là kiểu được chỉ ra trong tệp AndroidMainfest.xml. Tôi đã thêm

<item name="android:textSize">15sp</item> 

và nó hoạt động và tôi muốn làm điều này hơn thanh tác vụ tùy chỉnh.

1

Tôi đã theo phương pháp này để bỏ qua việc tạo ra các phong cách tùy chỉnh:

  1. Tạo một bố cục tùy chỉnh với kích thước văn bản yêu cầu và
  2. áp dụng đó để thanh hành động của bạn.

1) Tạo một file layout (titlebar.xml):

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/action_bar_title" 
     android:text="@string/app_name" 
     android:textColor="@color/colorPrimary" 
     android:textSize="24sp" /> 
</LinearLayout> 

đây thiết textSize yêu cầu của bạn.

2) MainActivity.java

getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); //bellow setSupportActionBar(toolbar); 
    getSupportActionBar().setCustomView(R.layout.titlebar); 

hy vọng điều này giúp.

Các vấn đề liên quan