2015-01-18 7 views
15

Stavo seguendo official developer's guide per sovrapporre la barra delle azioni.Sovrapposizione della barra delle azioni non funzionante

mia style.xml è la seguente:

<!-- Base application theme. --> 
<style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <!-- Customize your theme here. --> 
</style> 

<style name="AppTheme" parent="AppBaseTheme"> 
    <item name="actionBarStyle">@style/CustomActionBarTheme</item> 

</style> 

<style name="CustomActionBarTheme" 
    parent="@android:style/Theme.Holo"> 
    <item name="android:windowActionBarOverlay">true</item> 
</style> 

mio midSdkVersion è 14 e l'uscita prevista è simile a quella sulla guida ufficiale: enter image description here.

invece, nel mio caso l'output è: enter image description here

(. Ho impostato il colore di sfondo per l'attività ... ma non viene sovrapponendo barra delle operazioni)

Please help me semmai I' sto facendo è sbagliato

EDIT:

volevo simile barra azioni come questo in airnb e molte altre applicazioni. Qualcuno può darmi una risposta completa per questo?

enter image description here

+0

Controllare il file manifest. Potresti usare un tema sbagliato invece di CustomActionBarTheme. –

+0

@iDroidExplorer puoi scrivere una risposta completa con il codice? Lo apprezzerò. Grazie. –

+0

si sta impostando la barra di azione da sovrapporre, ma non è stato impostato lo sfondo della barra di azione per essere trasparenti. prova ad aggiungere ' @ drawable/actionbar_background' con '@ drawable/actionbar_background' è un'immagine png semi trasparente – am05mhz

risposta

33

Vedo alcune incomprensioni nel codice:

  1. windowActionBarOverlay opportuno precisare sul tema non sullo stile 's tuoi ActionBar.
  2. Nessun motivo per utilizzare uno Holo con un tema di supporto. Questo interrompe solo la tua supportabilità.

Prova questo:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="android:actionBarStyle">@style/MyActionBar</item> 
    <item name="android:windowActionBarOverlay">true</item> 
    <!--For compatibility--> 
    <item name="actionBarStyle">@style/MyActionBar</item> 
    <item name="windowActionBarOverlay">true</item> 
</style> 

<color name="transparent_black">#80000000</color> 
<style name="MyActionBar" parent="Widget.AppCompat.ActionBar.Solid"> 
    <item name="android:background">@color/transparent_black</item> 
    <!--For compatibility--> 
    <item name="background">@color/transparent_black</item> 
</style> 
+1

Non sono d'accordo con il tuo primo punto. perché è chiaramente menzionato che il tema deve essere dichiarato stile e puoi usarlo come di seguito: https://developer.android.com/guide/topics/ui/themes.html#ApplyATheme –

+0

Ho usato la tua soluzione e sta funzionando bene. Ma il titolo di ActionBar è sparito. Potete aiutarmi? –

+0

questo è semplicemente perfetto! –

1

Prova a modificare:

<style name="AppBaseTheme" parent="android:style/Theme.Holo.Light.DarkActionBar"> 
</style> 

<style name="OverlayActionBarTheme" parent="AppBaseTheme"> 
    <item name="android:windowActionBarOverlay">true</item> 
    <item name="android:actionBarStyle">@style/Holo.ActionBar.Overlay</item> 
</style> 

<style 
    name="Holo.ActionBar.Overlay" 
    parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse"> 
    <item name="android:background">#80000000</item> 
</style> 
4

penso che si dimentica questo punto di developer guide

Abilita Overlay modalità

per Android 3.0 e superiori

stile .xml

<resources> 
    <!-- the theme applied to the application or activity --> 
    <style name="CustomActionBarTheme" 
      parent="@android:style/Theme.Holo"> 
     <item name="android:windowActionBarOverlay">true</item> 
    </style> 
</resources> 

Per Android 2.1 e superiori

<resources> 
    <!-- the theme applied to the application or activity --> 
    <style name="CustomActionBarTheme" 
      parent="@android:style/Theme.AppCompat"> 
     <item name="android:windowActionBarOverlay">true</item> 

     <!-- Support library compatibility --> 
     <item name="windowActionBarOverlay">true</item> 
    </style> 
</resources> 

Specificare layout Top-margine

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingTop="?android:attr/actionBarSize"> 
    ... 
</RelativeLayout> 

e ho due esempio collega prega di dare un'occhiata su di loro per maggiori chiarimenti .

Android Tutorial: Overlay with User Instructions

Pushing the ActionBar to the Next Level

+1

Perfetto, se qualcuno usa le Tab scorrevoli e vuole mostrare e nascondere l'ActionBar sullo scroll, la chiave qui è 'android: paddingTop ="? Android: attr/actionBarSize "' – Skynet

-1

lo faccio vista completamente personalizzate, così, il layout di attività sarebbe riempire tutto lo schermo e mettere personalizzato LinearLayout in alto con tutti i pulsanti e le icone gonfiato

0

Basta perso che è necessario impostare la sovrapposizione nel tema applicazione come detto nel documention

<!-- the theme applied to the application or activity --> 

Si prega di rispondere se il problema non è risolto con quello;)