it-swarm.com.ru

Изменить цвет заголовка на панели инструментов?

У меня есть панель инструментов, которую я использую, и установите заголовок с помощью:

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

Есть ли способ изменить цвет с черного на белый?

Я попытался создать свою собственную тему и установить ее в XML, как это, но без игры в кости:

<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

Programatically:

toolbar.setTitleTextColor(0xFFFFFFFF);
44
tachyonflux

Согласно сообщению Theme vs Style создателя AppCompat и публикации version 21 AppCompat , панели инструментов DarkActionBar (т. Е. Toolbar с темным фоном и светлым текстом), можно выполнить добавление Android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" к вашему XML 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>

Это изменит цвет текста и цвета по умолчанию на многие атрибуты (например, Spinner) на светлый текст, необходимый для темного фона.

23
ianhanniballake

Создать новый стиль в базовой теме приложения

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

и использовать стиль для панели инструментов 

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

Я знаю, что есть много ответов над надеждой, это поможет тому, кто не понимает ответы выше.

В Android есть представление под названием Панель инструментов. Это представление имеет заголовок, который всегда принимает цвет по умолчанию из ресурсов color.xml, имя элемента - accent. Изменить цвет панели инструментов можно двумя способами.

  1. Через XML, который я рекомендую вам сделать, здесь ниже вы можете увидеть пример

    <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. Через программно в рамках деятельности или фрагмента.

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

Если вы хотите изменить только цвет текста заголовка, чем, Попробуйте это ..

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

оно работает..!!

5
Sandip Patel

В xml:

app: titleTextColor = "@ color/White" как

<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

Это может быть изменено программно, как вы можете ответить выше. Но чтобы уменьшить сложность кода, вы должны изменить его с помощью style.xml Прежде всего, создайте attrs.xml в каталог res/values ​​folder , Затем добавьте две ссылки на attrs.xml folder, например ниже

attrs.xml

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

После определения ссылки, чем создать стиль в style.xml как ниже

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>

Теперь мы создали toolbar_theme и toolbar_theme_title reference в attrs.xml , чем даем эти ссылки на нашу пользовательскую тему в style.xml

Наконец, мы даем эту ссылку на панель инструментов, как показано ниже

<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" />

Это оно. Вы можете задать эту тему программно или установить в androidmanifest.xml , как показано ниже.

программно

 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">

или же

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

Вы можете определить собственный стиль панели инструментов, расширив Widget.AppCompat.Toolbar и установив свойства titleTextAppearance и subtitleTextAppearance. Таким образом, вы можете изменить цвет и размер текста заголовка и подзаголовка панели инструментов для справки 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));

(панель инструментов - это имя, которое вы даете своей панели инструментов в своем классе acitivyt) (В ваших значениях цветов xml установите желаемые цвета и свяжите их с именем выбранного вами цвета, как показано здесь, я поддерживаю некоторые из своих основных цветов в норме имена) Мне потребовалось некоторое время, чтобы понять это самостоятельно, но это единственный способ, которым я могу заставить его работать, ThemEditor должен разрешить это, но это так и есть.

0
Jordan Adcock

Используйте этот код

<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" />
0
Faxriddin Abdullayev

Расширить на tachyonflux, установить цвет с помощью HEX

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

В Котлине, используя ответ Сандипа:

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

Вы можете изменить его программно, используя следующий код.

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

Вы можете изменить тему панели действий с помощью атрибута actionBarTheme следующим образом. Хотя он был добавлен на уровне API 21, он, похоже, совместим со старыми API.

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