Alguém sabe como definir o preenchimento entre o ícone inicial da ActionBar e o título?
android
android-actionbar
Alesqui
fonte
fonte
Respostas:
Eu adaptei a resposta de Cliffus e atribuí o desenho do logotipo em minha definição de estilo da barra de ações, por exemplo, em res / style.xml:
O drawable se parece com o de Cliffus (aqui com o ícone do inicializador de aplicativos padrão) em res / drawable / actionbar_space_between_icon_and_title.xml:
No android_manifest.xml, você ainda pode definir um ícone de aplicativo diferente (ícone do iniciador na 'área de trabalho'. Qualquer definição de logotipo diferente aqui é visível nas atividades sem uma barra de ação.
fonte
EDITAR : certifique-se de definir este drawable como LOGO , não como o ícone do aplicativo como alguns dos comentadores fizeram.
Basta fazer um drawable XML e colocá-lo na pasta de recursos "drawable" (sem nenhuma densidade ou outra configuração).
A última etapa é definir este novo drawable como logotipo em seu manifesto (ou no objeto Actionbar em sua atividade)
Boa sorte!
fonte
Eu também enfrentei um problema semelhante, no meu caso eu tive que definir títulos dinamicamente em cada atividade dependendo do conteúdo.
Então isso funcionou para mim.
Se tudo o que você quer é o espaçamento, esta é a solução mais fácil que eu poderia pensar.
fonte
app:titleMarginStart
atributo no XML do layout.Foi assim que consegui definir o espaçamento entre o ícone inicial e o título.
Não consegui encontrar uma maneira de personalizar isso por meio dos estilos XML da ActionBar. Ou seja, o seguinte XML não funciona:
No entanto, se você deseja fazer isso por meio de xml, esses dois links podem ajudá-lo a encontrar uma solução:
https://github.com/android/platform_frameworks_base/blob/master/core/res/res/values/styles.xml
(Este é o layout real usado para exibir o ícone da página inicial em uma barra de ação) https://github.com/android/platform_frameworks_base/blob/master/core/res/res/layout/action_bar_home.xml
fonte
padding
, parece usarmarginEnd
desde api 17 - o que provavelmente quebrará essa solução. Veja o meu abaixoEsta é uma pergunta comum no Material Design, pois você pode querer alinhar o título da barra de ferramentas com o conteúdo do fragmento abaixo. Para fazer isso, você pode substituir o preenchimento padrão de "12dp" usando o atributo contentInsetStart = "72dp" em seu layout toolbar.xml conforme mostrado abaixo
toolbar.xml
Então, em sua atividade, ligue
E você acaba com isso:
fonte
app:titleMarginStart="dimension"
necessário direcionar o título diretamente.contentInsetStart
colocar um espaço entre o ícone da página inicial e o título, a resposta poderia pelo menos dizer isso. Meu teste agora comcontentInsetStart
parecia colocar o espaço antes do logotipo (que reconhecidamente não é o mesmo que o ícone de casa).Para mim, apenas a seguinte combinação funcionou, testada de API 18 a 24
onde em "app" está:
xmlns:app="http://schemas.android.com/apk/res-auto"
por exemplo.
fonte
Se você estiver usando a barra de ferramentas do AppCompat (android.support.v7.widget.Toolbar,> = revisão 24, junho de 2016), o preenchimento entre o ícone e o título pode ser alterado com o seguinte valor:
Para melhorar minha resposta, você pode usá-lo em sua barra de ferramentas diretamente dentro de sua atividade ou pode criar um novo arquivo de layout para sua barra de ferramentas. Nesse caso, você só precisa importar o @id de sua barra de ferramentas usando a propriedade include em cada visualização necessária.
Você pode então importar seu layout em seu activity.xml
fonte
Usar
titleMarginStart
funciona para mim. Exemplo de Xamarin:Defina o logotipo assim:
fonte
Usei \ t antes do título e trabalhei para mim.
fonte
Estou usando uma imagem personalizada em vez do texto do título padrão à direita do logotipo do meu aplicativo. Isso é configurado programaticamente como
Os problemas com as respostas acima para mim são: a sugestão de @ Cliffus não funciona para mim devido aos problemas que outros descreveram nos comentários e, embora a configuração de preenchimento programático @dushyanth possa ter funcionado no passado, acho que o fato de o espaçamento ser agora definido usando
android:layout_marginEnd="8dip"
desde a API 17, definir manualmente o preenchimento não deve ter efeito. Veja o link que ele postou no git para verificar seu estado atual.Uma solução simples para mim é definir uma margem negativa em minha visualização personalizada na actionBar, assim
android:layout_marginLeft="-14dp"
. Um teste rápido mostra que funciona para mim em 2.3.3 e 4.3 usandoActionBarCompat
Espero que isso ajude alguém!
fonte
Resolvi esse problema usando o layout de navegação personalizado
Usando-o, você pode personalizar qualquer coisa no título da barra de ação:
build.gradle
AndroidManifest.xml
styles.xml
action_bar.xml
fonte
Tive um problema semelhante, mas com espaçamento entre o ícone / logotipo do aplicativo personalizado e na barra de ação. A solução de Dushyanth de definir o preenchimento programaticamente funcionou para mim (configuração do preenchimento no ícone do aplicativo / logotipo). Tentei encontrar android.R.id.home ou R.id.abs__home ( apenas ActionBarSherlock , pois isso garante compatibilidade com versões anteriores) e parece funcionar em dispositivos 2.3-4.3 em que testei.
fonte
No meu caso, foi com a Barra de Ferramentas que resolvi assim:
ic_toolbar_drawble.xml
No meu Fragment, eu verifico a API:
Boa sorte!
fonte
Você pode alterar drawableSize de seu DrawerArrow assim:
Não é a resposta correta, porque você não pode escolher o lado do preenchimento e a escala do ícone DrawerArrow ao alterar drawableSize (drawableSize = largura = altura). Mas você pode fazer a margem da esquerda. Para a margem da direita faça
fonte
Usei esse método
setContentInsetsAbsolute(int contentInsetLeft, int contentInsetRight)
e funciona!fonte
Quando estiver usando uma barra de ferramentas personalizada, você pode usar
e no layout da barra de ferramentas basta definir
app:titleMarginStart="16dp"
Observe que você deve definir o ícone como um logotipo, não use em
getSupportActionBar().setIcon(R.drawable.logo)
vez disso:getSupportActionBar().setLogo(R.drawable.logo)
fonte
Eu usei
AppBarLayout
e costumoImageButton
fazer isso.Meu código Java:
fonte
Você também pode conseguir o mesmo pelo método:
fonte
Em seu XML, defina o
app:titleMargin
em sua visualização da Barra de Ferramentas da seguinte forma:Ou em seu código:
fonte
isso funciona para mim adicionar preenchimento ao título e para o
ActionBar
ícone eu configurei isso programaticamente.fonte
Basta adicionar
" "
o nome do aplicativo. Isso adicionará um espaço entre o ícone e o títulofonte