2015-08-10 18 views
5

Le voci del mio menu diventano rosse, 10sp e lo sfondo è bianco ma textStyle in grassetto non funziona. Perchè è questo?Impostare lo stile del carattere in grassetto del menu della barra degli strumenti app

styles.xml

<style name="toolbarMenuTheme"> 
    <item name="android:colorBackground">@color/white</item> 
    <item name="android:textColor">@color/red</item> 
    <item name="android:textSize">10sp</item> 
    <item name="android:textStyle">bold</item> 
</style> 

Snippet dal mio layout.

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="48dp" 
     android:layout_marginTop="-5dp" 
     android:background="@color/white" 
     android:theme="@style/toolbarMenuTheme"/> 

E il mio layout gonfiato.

<item 
    android:id="@+id/web_view_reload" 
    android:icon="@drawable/replay" 
    android:title="Reload" 
    app:showAsAction="always"/> 
<item 
    android:id="@+id/web_view_action" 
    android:icon="@drawable/stack_icon_on" 
    android:title="Stack" 
    app:showAsAction="always"/> 
<item 
    android:id="@+id/web_view_screenshot" 
    android:icon="@drawable/screenshot" 
    android:title="Screenshot" 
    app:showAsAction="always"/> 
<item 
    android:id="@+id/web_view_share" 
    android:title="SHARE WEBSITE"/> 
<item 
    android:id="@+id/web_view_copy_url" 
    android:title="Copy URL"/> 

gonfiando in Java da:

Toolbar toolbar = (Toolbar) view.findViewById(R.id.toolbar); 
    toolbar.setNavigationIcon(R.drawable.x); 
    toolbar.inflateMenu(R.menu.web_view_toolbar_menu); 

e l'impostazione click ascoltatori:

toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { 
    @Override 
    public boolean onMenuItemClick(MenuItem item) { 
     .... 
    } 
} 

Modifica dopo i commenti

Ecco la mia piena styles.xml

styles.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="CustomUITheme" parent="@style/Theme.AppCompat.Light.NoActionBar"> 
     <item name="android:windowNoTitle">true</item> 
     <item name="android:windowActionBar">false</item> 
     <item name="windowActionBar">false</item> 

     <item name="android:windowBackground">@color/milky</item> 

     <!--item name="android:textSelectHandle">@drawable/text_select_handle_middle</item> 
     <item name="android:textSelectHandleLeft">@drawable/text_select_handle_left</item> 
     <item name="android:textSelectHandleRight">@drawable/text_select_handle_right</item--> 
     <item name="colorPrimary">@color/toolbar_bg</item> 
     <item name="colorPrimaryDark">#ff404040</item> 
     <item name="colorAccent">@color/accent</item> 
     <item name="android:textColorHighlight">@color/text_highlight</item> 

     <!--item name="alertDialogTheme">@style/AppCompatAlertDialogStyle</item--> 
    </style> 

    <style name="toolbarMenuTheme" parent="TextAppearance.Widget.AppCompat.Toolbar.Title"> 
     <item name="android:colorBackground">@color/white</item> 
     <item name="android:textColor">@color/red</item> 
     <item name="android:textSize">10sp</item> 
     <item name="android:textStyle">bold</item> 
    </style> 

    <style name="AppCompatAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert"> 
     <item name="android:background">#FFFFFF</item> 
     <item name="android:windowNoTitle">true</item> 
    </style> 

    <!--style name="CustomActionBar" 
     parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse"> 
     <item name="android:background">@color/toolbar_bg</item> 
    </style--> 

    <style name="captionOnly"> 
     <item name="android:background">@null</item> 
     <item name="android:clickable">false</item> 
     <item name="android:focusable">false</item> 
     <item name="android:minHeight">0dp</item> 
     <item name="android:minWidth">0dp</item> 
    </style> 

    <!-- FAB --> 
    <style name="FloatingActionButton" parent="android:Widget.ImageButton"> 
     <item name="floatingActionButtonSize">normal</item> 
    </style> 

    <!-- empty states --> 
    <style name="empty_title"> 
     <item name="android:textSize">10dp</item> 
    </style> 

    <style name="empty_details"> 
     <item name="android:textColor">#999999</item> 
     <item name="android:textSize">8dp</item> 
    </style> 
</resources> 

risposta

7

Aggiungere il seguente nel file styles.xml

<style name="ActionBar.nameText" parent="TextAppearance.AppCompat.Widget.ActionBar.Title"> 
     <item name="android:textColor">@color/PrimaryTextColor</item> 
     <item name="android:textSize">18sp</item> 
     <item name="android:textStyle">bold</item> 
    </style> 

Il nome dello stile e genitori potrebbero differire nel tuo caso, ma prendere concetto per grassetto

EDIT

Usare la seguente nel toolbar.xml

<android.support.v7.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:companyApp="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="?actionBarSize" 
    companyApp:theme="@style/ActionBarThemeOverlay" 
    companyApp:titleTextAppearance="@style/ActionBar.nameText"> 
</android.support.v7.widget.Toolbar> 

E nel tuo styles.xml

<style name="ActionBarThemeOverlay" parent=""> 
     <item name="android:textColorPrimary">@color/PrimaryTextColor</item> 
     <item name="colorControlHighlight">@color/BackgroundColor</item> 
     <item name="android:actionMenuTextColor">@color/PrimaryTextColor</item> 
     <item name="android:textColorSecondary">@color/PrimaryTextColor</item> 
     <item name="android:background">@color/PrimaryBackgroundColor</item> 
    </style> 

E nell'androide anifest.xml

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@android:style/Your Theme"> 
+0

Sembra che dovrebbe essere, ma sto ricevendo un errore cercando di gonfiare la classe dopo l'aggiunta il genitore. Come posso decidere quale genitore dovrei usare? – nilsi

+0

Dipende da cosa stai usando. Puoi mostrarmi il tuo file styles.xml completo? – Nabin

+0

Utilizza lo __name__ esatto per lo stile come il mio – Nabin

0

Toolbar

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="48dp" 
    android:layout_marginTop="-5dp" 
    android:background="@color/white" 
    android:theme="@style/toolbarMenuTheme" 
    app:titleTextAppearance="@style/Toolbar.TitleText" /> 

In Style.xml

<style name="Toolbar.TitleText" parent="TextAppearance.Widget.AppCompat.Toolbar.Title"> 
    <item name="android:textStyle">bold</item> 
</style> 

per pop-up menu

<style name="myPopupMenuTextAppearanceLarge" parent="@android:style/TextAppearance.DeviceDefault.Widget.PopupMenu.Large"> 
    <item name="android:textColor">@color/color_dark_grey</item> 
    <item name="android:textStyle">bold</item> 
</style> 
+0

Grazie, l'ho provato ma non è ancora in grassetto. – nilsi

0

Se fare un titolo barra degli strumenti in grassetto in questo caso è molto facile solo fare uso di una risorsa di stringa e mettere "" tag, che renderà il testo in grassetto . Ma per più stili diversi da grassetto e corsivo o corsivo grassetto, considera l'utilizzo del file styles.xml personalizzando il file in base alle tue esigenze.

0

Si può provare questo nel vostro activity.java per rendere Collapsed Titolo BOLD

final CollapsingToolbarLayout collapsingToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.collapsing_container); 

collapsingToolbarLayout.setCollapsedTitleTypeface(Typeface.DEFAULT_BOLD); 
2

Perché non provare questo

Anche in questo è possibile impostare le parti del testo in grassetto

Screenshot

getSupportActionBar().setDisplayShowTitleEnabled(true); 
SpannableStringBuilder str = new SpannableStringBuilder("HelloWorld"); 
str.setSpan(new android.text.style.StyleSpan(android.graphics.Typeface.BOLD), 5, 10,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
getSupportActionBar().setTitle(str); 

uscita sarà Ciao mondo

Nel caso in cui si desidera che tutto il testo di essere audaci, basta usare questo

str.setSpan(new android.text.style.StyleSpan(android.graphics.Typeface.BOLD), 0, 10,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 

uscita sarà HelloWorld

Problemi correlati