How to change size of title's text on Action Bar?
Solution 1
Actually, you can do what you want to customize the ActionBar. It must be done through the Theme. You can do something like this :
<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>
Solution 2
You could always do something like this:
ActionBar actionBar = getActionBar();
actionBar.setTitle(Html.fromHtml("<small>YOUR TITLE</small>"));
Solution 3
on my system, res/styles AppTheme has a note saying
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
and this is the style indicated in AndroidMainfest.xml. I added
<item name="android:textSize">15sp</item>
and it worked and I'd rather do this than a custom actionbar.
Solution 4
I have followed this method to skip the creation of custom style:
- Create a custom layout with required text size and
- apply that to your action bar.
1) Create a layout file (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>
Here set your required textSize.
2) MainActivity.java
getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); //bellow setSupportActionBar(toolbar);
getSupportActionBar().setCustomView(R.layout.titlebar);
hope this helps.
Solution 5
The text's size in Android ActionBar is standard.
Since ICS, Android now develops a standard so that applications will (hopefully) follow the same UI guidelines and design principles.
http://developer.android.com/guide/practices/ui_guidelines/index.html
This is why you can't change it.
However, if you still want to do so, you could use a custom Theme or maybe implement ActionBar (a fork) and modify its sources: https://github.com/johannilsson/android-actionbar to get maximum control.
malcoauri
Updated on July 09, 2022Comments
-
malcoauri almost 2 years
There is an
ActionBar
on each Android 4.0 application, and it got a title. I need to make this size less. But I don't understand how I can do it, becauseActionBar
doesn't provide public methods for it. Remark: I don't want to use custom views. -
323go over 11 yearsYou could. But you shouldn't. Android's chrome is designed by UI professionals who study how a user interacts with a device, and optimize appearance and placement of all UI elements to facilitate good interaction. Modifying the chrome will make an app less usable and frustrate users.
-
gingo over 10 yearsThanks Aurélien! You should consider using sp inshead of dp for text size ;-)
-
Gábor about 10 yearsInstead of hardcoding any size, you can consider inheriting from
parent="@android:style/TextAppearance.Large"
instead. That will give you the standard larger text size, no matter what device you're on. -
Elhanan Mishraky almost 10 yearsWorked for me, using Sherlock
-
Milaaaad over 8 yearsnice work i use this styling way for action bar and change the color and size and appearance of the title
-
Hugo Mallet about 8 yearsUse html to set text is very useless wit hbad performance use style :)
-
Fer about 4 yearswhere is the solution?