Android - Изменить цвет текста заголовка
Я разрабатываю приложение, и я хочу change the textcolor of the actionbar title
. теперь я определил тему в своем манифесте:
<application
android:theme="@style/AppTheme">
</application>
который определен в styles.xml:
<style name="AppTheme" parent="android:style/Theme.Holo.Light">
<item name="android:textViewStyle">@style/AppTheme.TextView</item>
<item name="android:actionBarStyle">@style/AppTheme.ActionBarStyle</item>
</style>
<style name="AppTheme.ActionBarStyle" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:titleTextStyle">@style/AppTheme.ActionBar.TitleTextStyle</item>
</style>
<style name="AppTheme.ActionBar.TitleTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
<item name="android:textColor">@color/themeapp</item>
</style>
<style name="AppTheme.TextView" parent="@android:style/Widget.TextView">
<item name="android:textColor">#FFFFFF</item>
</style>
это не работает, но я не понимаю почему. это должно работать в соответствии с этим ответом. Также работает стиль textview.
что я делаю неправильно?
UPDATE:
изменен, чтобы встретить ответ Грейс Фэн ниже
Ответы
Ответ 1
блуждая по StackOverflow, я нашел этот ответ, который наконец-то сработал.
Сообщаю об этом здесь:
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/ActionBar</item>
...
</style>
<style name="ActionBar" parent="@android:style/Widget.ActionBar">
<item name="android:titleTextStyle">@style/ActionBar.Title</item>
<item name="android:subtitleTextStyle">@style/ActionBar.Subtitle</item>
...
</style>
<style name="ActionBar.Title">
<item name="android:textColor">@color/my_color</item>
</style>
<style name="ActionBar.Subtitle">
<item name="android:textColor">@color/my_color</item>
</style>
Ответ 2
Используя SpannableString
, мы можем установить цвет текста Actionbar title
SpannableString s = new SpannableString(title);
s.setSpan(new ForegroundColorSpan(Color.GREEN), 0, title.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
getSupportActionBar().setTitle(s);
Ответ 3
<style name="AppTheme" parent="android:style/Theme.Holo.Light">
<style name="AppTheme.TextView" parent="android:Widget.TextView">
Вы пропустили символ "@" здесь?
<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
также
<style name="AppTheme.TextView" parent="@android:Widget.TextView">
Ответ 4
Вы можете найти, как настроить ActionBar
здесь. Вместо этого я рекомендую использовать ToolBar
и Theme.AppCompat
- .
Ответ 5
Я предполагаю, что вы используете ToolBar
качестве ActionBar
. Я думаю, что из всех ответов это самый простой для реализации. И работает на всех версиях API.
Итак, вот оно:
Заголовок панели действий использует textColorPrimary
качестве цвета текста. Таким образом, чтобы изменить это в styles.xml, создайте новый стиль с элементом для textColorPrimary
и установите любой цвет, который вам нужен.
<style name="appBarTheme" parent="Theme.AppCompat.NoActionBar">
<item name="android:textColorPrimary">@color/colorRed</item>
</style>
Теперь добавьте этот стиль в качестве темы для панели инструментов в XML.
<android.support.v7.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_scrollFlags="enterAlways"
android:id="@+id/toolbar"
android:theme="@style/appBarTheme">
</android.support.v7.widget.Toolbar>
И теперь вы получили то, что вам нужно.
Ответ 6
Просто добавьте app:titleTextColor="@color/CUSTOM_COLOR"
так:
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/yellow_light"
app:titleTextColor="@color/CUSTOM_COLOR"
app:popupTheme="@style/AppTheme.PopupOverlay"/>
Ответ 7
Когда я получил ту же проблему, я использовал:
<item name="titleTextStyle">@style/ActionBarTextStyle</item>
<item name="android:titleTextStyle">@style/ActionBarTextStyle</item>
Ответ 8
Я думаю, что это просто проблема с вашей деятельностью. Я использовал тот же код, что и вы, и он работает. ![введите описание изображения здесь]()
Во-первых, я использовал AppCompatActivity в качестве базового действия и получил ошибку. и затем я использую активность, и она работает.
На мой взгляд, ваш код используется для темы для Theme.Holo, и теперь мы используем Theme.AppCompat. Поэтому, если вы хотите изменить, просто ссылку Изменение фона и цвет текста темы AppCompat Light DarkActionBar на Android.
Это работает для меня. Удачи вам.
Ответ 9
Кажется, вы использовали style
вместо theme
. Стили и темы отличаются. Поэтому замените
<style name="AppTheme" parent="android:style/Theme.Holo.Light">
С
<style name="AppTheme" parent="android:Theme.Light">
Ответ 10
Я не знаю решения, но я смог изменить цвет текста между белым и черным с помощью этого метода.
поэтому в файле styles.xml у вас есть:
<resources>
<style name="AppTheme" parent="Theme.AppCompat.DayNight.DarkActionBar">
<item name="colorPrimary">#673AB7</item>
<item name="colorPrimaryDark">#512DA8</item>
<item name="colorAccent">#FF4081</item>
</style>
</resources>
если вы измените то, что внутри родителя = "..." на темные или светлые темы, оно адаптирует цвет текста к этим темам. Например, сейчас у вас темная тема, а текст белый, но когда я перехожу к "Theme.AppCompat.Light", цвет текста становится черным.
Надеюсь, что это поможет.
Ответ 11
Измените тему Activity
как:
<style name="ThemeName" parent="android:Theme.Holo.Light">
<item name="android:actionMenuTextColor">@color/white</item>
</style>
Ответ 12
Просто была эта проблема, наконец-то разобрался. В вашем style.xml не указывайте цвет фона для вашей панели инструментов. Затем определите цвет в каждом файле layout.xml:
<android.support.v7.widget.Toolbar
android:id="@+id/my_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="#B678EE"
android:elevation="4dp"
android:theme="@style/ToolbarTheme"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
Это дает вам гибкость, чтобы иметь возможность легко иметь разные цвета панели действий в зависимости от активности, если это необходимо.
Ответ 13
Это полезный код. Следуйте этому коду.
<style name="AppTheme" parent="Theme.AppCompat.Light">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorApp</item>
</style>
<style name="TextAppearance.AppCompat.Widget.ActionBar.Title" parent="@android:style/TextAppearance">
<item name="android:textSize">23dp</item>
<item name="android:textColor">@color/YOUR_COLOR</item>
</style>
Во втором теге стиля мы настраиваем заголовок actionBar.
Теперь добавьте этот код в приложение в Manifest File
<application
android:theme="@style/AppTheme">
<activity> ..... </activity>
<activity> ..... </activity>
</application>