webentwicklung-frage-antwort-db.com.de

Titelfarbe in der Symbolleiste ändern?

Ich habe eine Symbolleiste, die ich verwende, und setze den Titel mit:

((ActionBarActivity)getActivity()).getSupportActionBar().setTitle("Home");

Gibt es eine Möglichkeit, die Farbe von Schwarz zu Weiß zu ändern?

Ich habe versucht, ein eigenes Thema zu erstellen und es so in die XML-Datei zu setzen, aber keinen Würfel:

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme2" parent="Theme.AppCompat">
        <item name="Android:windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
        <item name="colorPrimary">@color/primary</item>
        <item name="colorPrimaryDark">@color/primary_dark</item>
        <item name="colorAccent">@color/accent</item>
        <item name="Android:textColorPrimary">@color/primary_text</item>
        <item name="Android:textColorSecondary">@color/secondary_text</item>

    </style>

    <style name="Widget.MyApp.ActionBar" parent="Widget.AppCompat.ActionBar">
        <item name="Android:background">@color/primary</item>
        <item name="theme">@style/ThemeOverlay.MyApp.ActionBar</item>
        <item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item>
    </style>

    <style name="ThemeOverlay.MyApp.ActionBar" parent="ThemeOverlay.AppCompat.ActionBar">
        <item name="Android:textColorPrimary">#FFFFFF</item>
    </style>



</resources>

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="match_parent"
    Android:background="#e5e5e5"
    Android:orientation="vertical" >

    <Android.support.v7.widget.Toolbar
        Android:id="@+id/toolbar"
        Android:minHeight="?attr/actionBarSize"
        Android:background="@color/primary"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        style="@style/Widget.MyApp.ActionBar">

        <Spinner
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:id="@+id/statsSpin"
            Android:spinnerMode="dropdown"
            Android:textColor="#FFFFFF"/>


    </Android.support.v7.widget.Toolbar>



    <ListView
        Android:id="@+id/yourStats"
        Android:layout_width="fill_parent"
        Android:layout_height="fill_parent"
        Android:dividerHeight="0px"
        Android:divider="@null"

        >
    </ListView>



</LinearLayout>
28
Mike

Programmatisch:

toolbar.setTitleTextColor(0xFFFFFFFF);
44
tachyonflux

Durch den Blogeintrag " Theme vs. Style" des Erstellers von AppCompat und des Beitrags in Version 21 von AppCompat kann eine DarkActionBar-Symbolleiste (dh eine Toolbar mit dunklem Hintergrund und hellem Text) durch erreicht werden Hinzufügen von Android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" zur XML Ihrer Toolbar:

<Android.support.v7.widget.Toolbar
    Android:id="@+id/toolbar"
    Android:minHeight="?attr/actionBarSize"
    Android:background="@color/primary"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

    <Spinner
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:id="@+id/statsSpin"
        Android:spinnerMode="dropdown"/>


</Android.support.v7.widget.Toolbar>

Dadurch werden die Textfarbe und die Standardfarben in viele Attribute geändert (z. B. Ihre Spinner), um hellen Text so darzustellen, wie er für den dunklen Hintergrund benötigt wird.

23
ianhanniballake

Erstellen Sie einen neuen Stil im Anwendungsbasisdesign

  <style name="custom_toolbar" parent="@style/Widget.AppCompat.Toolbar">
        <item name="titleTextColor">#replace with color</item>
  </style>

und verwenden Sie den Stil für die Symbolleiste 

  <item name="toolbarStyle">@style/custom_toolbar</item>
18
Sanal

Ich weiß, es gibt viele Antworten über der Hoffnung, es wird jemandem helfen, der die obigen Antworten nicht versteht.

Android hat eine Ansicht, die als Symbolleiste bezeichnet wird. Diese Ansicht hat einen Titel, der als Standardfarbe von color.xml-Ressourcen verwendet wird, deren Name accent ist. Sie können die Farbe der Symbolleiste auf zwei Arten ändern.

  1. Über XML, das ich Ihnen empfehlen kann, sehen Sie unten ein Beispiel

    <Android.support.v7.widget.Toolbar
        Android:id="@+id/toolbar"
        Android:layout_width="match_parent"
        Android:layout_height="?attr/actionBarSize"
        app:titleTextColor="@color/White" />Here you can change it.Remember APP attribute not Android
    
  2. Via programmgesteuert innerhalb einer Aktivität oder eines Fragments.

    Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar);
    toolbar.setTitleTextColor(ContextCompat.getColor(this, R.color.colorAccent));
    
9
Sardor Islomov

Wenn Sie nur die Titelfarbe ändern möchten, probieren Sie diese aus.

getSupportActionBar().setTitle(Html.fromHtml("<font color='#746E66'>"+titleText+"</font>"));

es klappt..!!

5
Sandip Patel

Fügen Sie in Android.support.v7.widget.Toolbar die folgende Zeile hinzu:

local:titleTextColor="@color/the_color_you_want"
0
Victor Li

In xml:

app: titleTextColor = "@ color/White" als

<Android.support.v7.widget.Toolbar
    Android:id="@+id/tb_top"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:background="?attr/colorPrimary"
    Android:minHeight="?attr/actionBarSize"
    app:theme="@style/AppTheme.DarkToolbar"
    app:titleTextColor="@color/White" />
0
Rashmi Jain

Sie kann programmgesteuert geändert werden, wie Sie es oben beschrieben haben. Reduzieren Sie jedoch die Komplexität des Codes, ändern Sie ihn über style.xml Erstellen Sie zunächst attrs.xml im Ordner res/values ​​ Fügen Sie dann zwei Verweise auf den Ordner attrs.xml hinzu unten

attrs.xml

 <?xml version="1.0" encoding="utf-8"?>
 <resources>
    <attr name="toolbar_theme" format="reference" />
    <attr name="toolbar_theme_title" format="reference" />
</resources>

Nach der Definition der Referenz erstellen Sie einen Stil in style.xml wie unten

style.xml 

<style name="CustomTheme" parent="Theme.AppCompat.Light.NoActionBar">
      <item name="colorPrimary">#00A4E4</item>
      <item name="colorPrimaryDark">#AB0634</item>
      <item name="colorAccent">#AB0634</item>
      <item name="toolbar_theme">@style/CustomTheme.Toolbar</item>
      <item name="toolbar_theme_title">@style/CustomTheme.Toolbar.Title</item>
      <item name="Android:textColorPrimary">@color/black</item>
      <item name="Android:textColorSecondary">@Android:color/black</item>
      <item name="windowActionModeOverlay">true</item>
</style>

<style name="CustomTheme.Toolbar" parent="ThemeOverlay.AppCompat.ActionBar">
     <!-- if you have a navigationdrawer you change it color also -->
     <item name="colorControlNormal">#AB0634</item>
</style>

<style name="CustomTheme.Toolbar.Title" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
     <!-- Set title size -->
     <item name="Android:textSize">@dimen/abc_text_size_title_material_toolbar</item>
     <!-- Set title color -->
     <item name="Android:textColor">#AB0634</item>
</style>

Jetzt haben wir toolbar_theme und toolbar_theme_title in attrs.xml als Referenz erstellt, als diese Verweise auf unser benutzerdefiniertes Design in style.xml.

Schließlich geben wir diesen Verweis auf die Symbolleiste wie folgt

<Android.support.v7.widget.Toolbar
     Android:id="@+id/toolbar"
     Android:layout_width="match_parent"
     Android:layout_height="?attr/actionBarSize"
     Android:background="?attr/colorPrimary"
     Android:theme="?attr/toolbar_theme"
     app:titleTextAppearance="?attr/toolbar_theme_title"
     Android:elevation="4dp"
     app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

Das ist es. Sie können dieses Thema programmatisch angeben oder in androidmanifest.xml wie folgt einstellen.

programmatisch

 public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setTheme(R.style.CustomTheme); // (for Custom theme)
    this.setContentView(R.layout.myactivity);

androidmanifest.xml

 <application
     Android:theme="@style/CustomTheme">

oder

 <activity
     Android:theme="@style/CustomTheme">
0
slymnozdmrc

Sie können einen benutzerdefinierten Werkzeugleistenstil definieren, indem Sie Widget.AppCompat.Toolbar erweitern und die Eigenschaften titleTextAppearance und subtitleTextAppearance festlegen. Auf diese Weise können Sie Farbe und Textgröße des Titels und des Untertitels der Symbolleiste als Referenz ändern http://www.zoftino.com/Android-toolbar-tutorial .

<style name="MyAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="toolbarStyle">@style/MyToolBarStyle</item>
    </style>
    <style name="MyToolBarStyle" parent="Widget.AppCompat.Toolbar">
        <item name="titleTextAppearance">@style/MyTitleTextAppearance</item>
        <item name="subtitleTextAppearance">@style/MySubTitleTextAppearance</item>
    </style>
    <style name="MyTitleTextAppearance" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
        <item name="Android:textSize">25dp</item>
        <item name="Android:textColor">#ff3d00</item>
    </style>
    <style name="MySubTitleTextAppearance" parent="TextAppearance.Widget.AppCompat.Toolbar.Subtitle">
        <item name="Android:textSize">20dp</item>
        <item name="Android:textColor">#1976d2</item>
    </style>
0
Arnav Rao

toolbar.setTitleTextColor (getResources (). getColor (R.color.black));

(Symbolleiste ist der Name, den Sie Ihrer Symbolleiste in Ihrer Aktivitätsklasse geben.). (In Ihren Farbwerten setzen Sie Ihre gewünschten Farben und verweisen auf den Farbnamen, den Sie gewählt haben. Wie hier zu sehen, halte ich einige meiner Hauptfarben für normal names) Ich habe eine Weile gebraucht, um das selbst herauszufinden, aber dies ist der einzige Weg, wie ich es zum Laufen bringen kann, der ThemEditor sollte dies zulassen, aber es ist was es ist.

0
Jordan Adcock

Verwenden Sie diesen Code

<Android.support.v7.widget.Toolbar
        Android:id="@+id/toolbar"
        app:titleTextColor="@color/colorAccent"
        app:theme="@style/ToolbarColoredBackArrow"
        app:subtitleTextColor="@color/colorAccent"
        Android:layout_width="match_parent"
        Android:layout_height="?attr/actionBarSize"
        Android:background="?attr/colorPrimary"
        app:popupTheme="@style/AppTheme.PopupOverlay" />

Auf Tachyonflux erweitern, Farbe mit einem HEX einstellen

 toolbar.setTitleTextColor(Color.parseColor("#519c3f"));
0
ZeroNine

In Kotlin mit Sandips Antwort:

with(getSupportActionBar()) {
        val titleText: String = title.toString()
        setTitle(Html.fromHtml("<font color='#746E66'>" + titleText + "</font>"))
    }
0
styl3r

Sie können es programmgesteuert ändern, indem Sie folgenden Code verwenden.

toolbar.setTitleTextColor(Android.graphics.Color.WHITE);
0
Junaid Ali

Sie können das Thema Ihrer Aktionsleiste mit dem Attribut actionBarTheme wie folgt ändern. Obwohl es in API Level 21 hinzugefügt wurde, scheint es mit älteren APIs kompatibel zu sein.

<style name="AppTheme" parent="Theme.AppCompat.Light">
    <item name="actionBarTheme">@style/AppTheme.AppBarOverlay</item>
</style>
0
Didier Corronel