como posso alterar a cor do texto do ActionBar? Como herdei o Tema Holo Light, sou capaz de alterar o plano de fundo da ActionBar, mas não descubro qual é o atributo a ser alterado para alterar a cor do texto.
Ok, sou capaz de alterar a cor do texto com o atributo android: textColorPrimary, mas também altera a cor do texto do menu suspenso exibido quando ocorre um estouro nos botões do ActionBar. Alguma idéia de como alterar a cor desses menus / lista?
Respostas:
Ok, eu encontrei uma maneira melhor. Agora só consigo alterar a cor do título. Você também pode ajustar a legenda.
Aqui está o meu styles.xml:
fonte
Widget.Holo.Light.ActionBar
forMyTheme.ActionBarStyle
.Eu encontrei uma maneira que funciona bem com qualquer sabor de
ActionBar
( Sherlock , Compat e Native ):Basta usar o html para definir o título e especificar a cor do texto. Por exemplo, para definir a cor do texto do ActionBar como vermelho, basta fazer o seguinte:
Você também pode usar o código hexadecimal vermelho em
#FF0000
vez da palavrared
. Se você estiver tendo problemas com isso, consulte Android Html.fromHtml (String) não funciona para o <font color = '#'> texto </font> .Além disso, se você deseja usar um recurso de cores, esse código pode ser usado para obter a seqüência HEX correta e remover o alfa, se necessário (a tag da fonte não suporta alfa):
fonte
red
por" + color + "
.#FF0000
por"+color+"
.Eu estava tendo o mesmo problema que você, é um tema Holo.Light, mas queria estilizar a cor do ActionBar, por isso também precisava alterar a cor do texto e também o título e os menus. Então, no final, fui ao git hub e examinei o código-fonte até encontrar o maldito estilo correto:
agora tudo que você tem a fazer é definir o que quer
@color/actionBarText
e@drawable/actionbarbground
você quer!fonte
O ID da ActionBar não está disponível diretamente, então você precisa fazer um pouco de hacking aqui.
fonte
NullPointerException
nesta linhaactionBarTextView.setTextColor(Color.RED);
getIndentifier()
, pode procurar(TextView) findViewById(com.actionbarsherlock.R.id.abs__action_bar_title);
primeiro (verifique se não é nulo).Toolbar toolbar = findViewById(R.id.toolbar);
no arquivo de layout xml, ela é cercada porcom.google.android.material.appbar.AppBarLayout
elemento, entãotoolbar.setTitleTextColor( getResources().getColor( R.color.colorViolet ) );
É um tópico antigo, mas para futuros leitores, o uso da Barra de Ferramentas facilita tudo:
fonte
eu fiz com um código de linha simples
fonte
Adicione-o à raiz da barra de ação. Eu tive esse problema.
actionMenuTextColor - altera a cor do texto da barra de ação, nunca funcionou quando fazia parte do
Widget.Styled.ActionBar
, então tive que adicioná-lo à raiz. Outros 2 atributos alteram o título e a legenda de uma barra de ação.fonte
Definir uma string HTML na barra de ação não funciona no tema Material no SDK v21 +
Se você quiser alterá-lo, defina a cor do texto principal em seu style.xml
fonte
A maneira mais direta é fazer isso no styles.xml.
No momento, o modelo styles.xml do Google gera o seguinte:
Se você adicionar mais uma linha antes da tag de fechamento, como mostrado, isso mudará a cor do texto para o que deveria ser com um Dark ActionBar:
Se quiser personalizar a cor para outra coisa, você pode especificar sua própria cor em colors.xml ou até mesmo usar uma cor interna do Android usando o atributo android: textColorPrimary:
Nota: Isso altera a cor do título e também os títulos de quaisquer itens de menu exibidos na ActionBar.
fonte
Se você quiser estilizar a legenda também, basta adicioná-la ao seu estilo personalizado.
Pessoas que desejam obter o mesmo resultado para a
AppCompat
biblioteca, é isso que eu usei:fonte
<item name="android:titleTextStyle">
e<item name="titleTextStyle">
porque estava usando a biblioteca de suporte do appcompat.Encontrei o caminho certo para fazer isso sem criar seu próprio layout na API> = 21.
Ele somente colorirá os textos e controlará os drawables dentro da barra de ação.
Espero que seja útil para alguém.
fonte
Muitas respostas foram descontinuadas, então atualizarei o tópico e mostrarei como alterar a cor do texto e a cor do plano de fundo na ActionBar (Barra de Ferramentas) e no menu pop-up da ActionBar.
A abordagem mais recente no Android (a partir de maio de 2018) ao trabalhar com a barra de ação (barra de ferramentas) é usar o tema com NoActionBar e usar a barra de ferramentas.
então aqui está o que você precisa:
Em Atividade (que estende AppCompatActivity), declare a Barra de Ferramentas:
Adicione a barra de ferramentas no xml de layout da atividade. Aqui, definiremos nossos temas personalizados (sobrescritos), observação
android:theme="@style/ThemeOverlay.AppTheme.ActionBar"
eapp:popupTheme="@style/ThemeOverlay.AppTheme.PopupMenu"
, eles farão o truque.No seu styles.xml, você precisará substituir esses dois estilos para definir cores personalizadas:
É isso aí pessoal
ps se você me perguntar, eu diria: SIM, esse tema todo é uma bagunça.
fonte
Esta é a solução que usei depois de verificar todas as respostas
Mude as cores necessárias para que funcione
fonte
Esta função funciona bem
em seguida, use-o apenas alimente sua barra de ação e a nova cor, ou seja
fonte
Tente adicionar isso no onCreate da sua atividade. Funciona em quase todas as versões do Android.
ou
fonte
Experimente vários métodos, na versão baixa da API, um método viável é
<item name="actionMenuTextColor">@color/your_color</item>
e não use o espaço para nome Android, a esperança pode ajudá-lops:
fonte
basta colocar isso no seu estilo thme.
<item name="android:textColorPrimary">@color/yourcolor</item>
fonte
Uma boa solução é usar um SpannableStringBuilder e definir a cor dessa maneira. Você pode até usar cores diferentes em diferentes partes da corda, adicionar imagens etc.
Testado com a nova biblioteca de suporte.
Consulte Android: colorindo parte de uma sequência usando TextView.setText ()?
fonte
Esta não é a solução recomendada, pois eu estou indo nas APIs do Android aqui, mas como o meu aplicativo exige que você mude dinamicamente o tema, as condições xml não são possíveis aqui, por isso preciso fazer isso. Mas esta solução está funcionando muito bem.
Solução:--
fonte
Para o Android 5 (pirulito), você terá que usar android: actionBarPopupTheme para definir o textColor para o menu de estouro.
fonte
A maneira mais simples é:
adicione essas duas linhas ao seu arquivo styles.xml
Substitua a cor pela sua cor.
fonte
você pode alterar a cor de qualquer texto usando o atributo html
<font>
diretamente nosxml
arquivos. por exemplo emstrings.xml
:fonte