2012-06-21 37 views
7

Làm cách nào để thay đổi kích thước phông chữ cho tiêu đề của thanh Hành động bằng cách sử dụng Chủ đề cho ActionBarSherlock?Làm cách nào để thay đổi kiểu phông chữ trên ActionBarSherlock

chủ đề của tôi tại thời điểm (áp dụng cho toàn bộ ứng dụng của tôi là như sau):

<style name="Theme.MyAppDefaults" parent="@style/Theme.Sherlock.Light"> 
     <item name="android:textSize">@dimen/default_textsize</item> 
     <item name="actionBarSize">@dimen/action_bar_height</item> 
</style> 

Chú ý rằng kích thước phông chữ được thiết lập như đặt trên tất cả các Chế độ xem trong ứng dụng của tôi. Chỉ cần không phải là font ActionBar.

Trả lời

7

tôi đã làm việc này bằng cách sử dụng các chủ đề bên dưới:

<style name="Theme.MyApp.Default" parent="@style/Theme.Sherlock.Light"> 
     <item name="actionBarStyle">@style/MyApp.SherlockActionBarStyle</item> 
     <item name="android:actionBarStyle">@style/MyApp.SherlockActionBarStyle</item> 
</style> 

<style name="MyApp.SherlockActionBarStyle" parent="@style/Widget.Sherlock.ActionBar"> 
     <item name="titleTextStyle">@style/MyApp.ActionBar.TextAppearance</item> 
</style> 

<style name="MyApp.ActionBar.TextAppearance" parent="@style/TextAppearance.Sherlock.Widget.ActionBar.Menu"> 
     <item name="android:textSize">@dimen/default_textsize</item> 
     <item name="android:textColor">@color/dark_grey</item> 
</style> 

Thông báo kích thước văn bản là theo phong cách đặt tên MyApp.ActionBar.TextAppearance. Cũng theo ActionBarSherlock chủ đề nên được đặt trên cả thuộc tính tiền tố android và thuộc tính thông thường (Xem actionBarStyle theo kiểu Theme.MyApp.Default ở trên.)

+0

điều này không cho phép phông chữ tùy chỉnh. Có cách nào để làm điều đó ? –

10

Nếu bạn cần thay đổi kiểu của tựa đề, bạn có thể thêm chế độ xem tùy chỉnh như thế này:

<TextView 
    android:id="@+id/action_custom_title" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="My Custom title" 
    android:textColor="#fff" 
    android:textSize="18sp" /> 

Sau đó, ẩn tiêu đề thực tế và hiển thị chế độ xem tùy chỉnh.

_actionBar.setDisplayShowTitleEnabled(false); 

    LayoutInflater inflater = LayoutInflater.from(this); 
    View customView = inflater.inflate(R.layout.custom_action_layout, null); 

    TextView titleTV = (TextView) customView.findViewById(R.id.action_custom_title); 
    // you can apply a custom typeface here or do sth else... 

    _actionBar.setCustomView(customView); 
    _actionBar.setDisplayShowCustomEnabled(true); 

Đó là tất cả! Nếu bạn quan tâm kích thước phông chữ mặc định cho tiêu đề ActionBar là 18sp.

+0

Điều này cũng sẽ xóa nút trang chủ và các chế độ xem khác trong thanh tác vụ không? – Diederik

+0

Không, nó sẽ không. Trang chủ nút, tab, các mục hành động sẽ vẫn như cũ;) – lomza

+0

Đây không phải là một giải pháp tồi, tôi chỉ thích chủ đề XML duy nhất. Ít mã hơn để duy trì. – Diederik

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