2014-10-19 3 views
15

C'è un modo per rendere ActionBar trasparente in Material Design tramite Appcompat-v7 21? Purtroppo non funziona.Barra di azione trasparente con AppCompat-v7 21

<item name="colorPrimary">@android:color/transparent</item> 

Inoltre non il vecchio:

<style name="Widget.Styled.ActionBar" parent="Widget.AppCompat.Light.ActionBar"> 
     <item name="android:background">@android:color/transparent</item> 
    </style> 

risposta

25
<!-- Application theme. --> 
<style name="AppTheme" parent="Theme.AppCompat.Light"> 
    <item name="android:actionBarStyle">@style/MyActionBar</item> 

    <!-- Support library compatibility --> 
    <item name="actionBarStyle">@style/MyActionBar</item> 
</style> 

<!-- ACTION BAR STYLES --> 
<style name="MyActionBar" parent="@style/Widget.AppCompat.ActionBar"> 
    <item name="android:background">@drawable/actionbar_background</item> 
    <item name="android:windowActionBarOverlay">true</item> 

    <!-- Support library compatibility --> 
    <item name="background">@drawable/actionbar_background</item> 
    <item name="windowActionBarOverlay">true</item> 
</style> 
+0

non sembra funzionare per me :-( – ligi

+0

penso che si dovrebbe vedere https://developer.android.com/training/basics/actionbar/styling.html questo vi dirà come cambiare spunta la mia risposta se hai ottenuto la risposta grazie vota per aver ricevuto la risposta grazie –

+0

modifica la risposta che sta funzionando per me adesso –

23

In realtà, è abbastanza facile e semplice.

  1. Basta assicurarsi di utilizzare RelativeLayout per disporre Toolbar e il corpo.
  2. Inserire lo Toolbar nell'ultimo.
  3. colore trasparente Mettere per android:background attributo della Toolbar

Questo è un esempio di un codice di lavoro:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:baselineAligned="false" 
    android:orientation="vertical"> 

    <fragment 
     android:id="@+id/fragment_editor" 
     android:name="ichsan.myapp.HelloFragment" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     tools:layout="@layout/fragment_editor" /> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/my_toolbar" 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent" 
     android:minHeight="?attr/actionBarSize" 
     android:background="#10000000" 
     app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
     app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> 

</RelativeLayout> 

spero che risponde alla domanda.

+0

Bel approccio. Ha fatto i trucchi :) – nvg58

+0

Bello. Stavo lavorando su questo per un po 'prima di trovare il tuo post. – Lars

+1

Qualcuno ha trovato una soluzione pulita su come scambiare tra una barra degli strumenti sovrapposta e una barra degli strumenti ancorata in alto a seconda di quale frammento viene visualizzato all'interno dell'attività? – Ryan

1

Passo:

1. messo sotto stile in v21 \ styles.xml

<style name="TransperantToolbar" parent="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 
    <item name="android:windowActionBarOverlay">true</item> 
    <item name="windowActionBarOverlay">true</item> 
</style> 

2. Il codice barra degli strumenti XML

<android.support.v7.widget.Toolbar 
android:id="@+id/toolbar" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
app:theme="@style/TransperantToolbar"/> 

Output

0

Nessuno dei precedenti ha fatto il trucco per me (o almeno non da solo) utilizzando appcompat v7 23 e un CoordinatorLayout, che è probabilmente il colpevole. Se si sta andando questa strada, allora probabilmente avete un layout attività principale che si presenta come

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/main_content" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.farmdog.farmdog.MainActivity"> 

    <android.support.v4.view.ViewPager 
     android:id="@+id/container" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
       app:layout_anchor="@+id/appbar" 
       app:layout_anchorGravity="top" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 
     <!--android:theme="@style/AppTheme.AppBarOverlay">--> 
    ... 

Avviso le due linee di layout di ancoraggio sopra - chi ha fatto per me.