Eu uso actionbarsherlock. O trecho de código abaixo é responsável por alterar seu plano de fundo para um personalizado.
<style name="Widget.Styled.ActionBar" parent="Widget.Sherlock.ActionBar">
<item name="background">@drawable/actionbar_bg</item>
<item name="android:background">@drawable/actionbar_bg</item>
<...>
</style>
<style name="Theme.MyApp" parent="@style/Theme.Sherlock.Light">
<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
<item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
<..>
</style>
E funciona para actionbarsherlock (nas versões abaixo do favo de mel). Mas no ICS eu tenho uma sombra abaixo da barra de ação que não quero. Qual é o item de estilo para fazê-lo desaparecer?
android
android-actionbar
actionbarsherlock
Michał K
fonte
fonte
getSupportActionBar().setElevation(0);
não funciona. Então você colocou<item name="android:windowContentOverlay">@null</item>
seu tema de aplicativo. Eu tive o problema semelhante. Agora eu tenho os dois. setElevation e adicionado item windowContentOverlay no tema do aplicativo. setElevation funciona para o Android 5.0 e superior, enquanto o outro funciona para pré-pirulito. Felicidades!Para o Android 5.0, se você deseja defini-lo diretamente em um estilo, use:
e para usar a compatibilidade da biblioteca de suporte:
Exemplo de estilo para um tema de luz AppCompat:
Em seguida, aplique este estilo ActionBar personalizado ao seu tema de aplicativo:
Para o Android 5.0 anterior, adicione isso também ao tema do seu aplicativo:
fonte
windowContentOverlay
tema da barra de ação, não o tema do aplicativo.android:elevation
nos dispositivos pirulitos). Não consigo fazer isso usando essa abordagem. Eu acredito que seria bastante correto. Coloque um valor diferente de zero para os atributos de elevação e seria isso.android:windowContentOverlay
a API pré-pirulito? Não consigo compilar se meu minSDK é pré-pirulito, mas o destino é 21?<style name="Theme.MyApp.ActionBar" parent="Widget.AppCompat.Light.ActionBar.Solid.Inverse">
semstyle/
noparent
atributo.No Android 5.0, isso mudou, você deve chamar setElevation (0) na sua barra de ação. Observe que, se você estiver usando a biblioteca de suporte, deve chamar assim:
Ele não é afetado pelo item de estilo windowContentOverlay, portanto, nenhuma alteração nos estilos é necessária.
fonte
adicione
app:elevation="0dp"
AppBarLayout para ocultar sombra na barra de aplicativosfonte
Se você estiver trabalhando com o ActionBarSherlock
No seu tema, adicione este:
fonte
Você deve definir
app:elevation="0dp"
noandroid.support.design.widget.AppBarLayout
e então ele funciona.fonte
mas não
trabalhou para mim no android L
fonte
Eu tenho esse mesmo problema e resolvi com sucesso esse problema. Tudo o que você precisa fazer é alterar a elevação para 0 valor de ponto flutuante na atividade em que você deseja remover a elevação.
Se você deseja alterá-lo em uma atividade chamada
MyActivity.java
, é necessário obter oActionBar
primeiro.Primeiro importe a
ActionBar
classeapós a importação, é necessário inicializar uma variável da barra de ação e definir sua elevação como 0.
fonte
Para desenvolvedores do Xamarin, use:
SupportActionBar.Elevation = 0;
paraAppCompatActivity
ouActionBar.Elevation = 0;
para atividades não compatíveisfonte
Solução para Kotlin (Android 3.3, Kotlin 1.3.20)
fonte
Experimente Isso me ajudou sem alterar o tema. Coloque seu AppBarLayout dentro de qualquer layout. Espero que isso ajude você
fonte
Para aqueles que trabalham com fragmentos e ele desapareceu após a configuração
toolbar.getBackground().setAlpha(0);
ou qualquer desaparecimento, acho que você deve trazer o AppBarLayout para o último no xml, então o Fragment, em seguida, AppBarLayout, então relativelayout / constrangimento / linear, conforme o que você usa.fonte
Adicione isso
toolbar.getBackground().setAlpha(0);
ao método OnCreate interno. Adicione isto:android:elevation="0dp" android:background="@android:color/transparent
ao seu arquivo xml da barra de ferramentas.fonte