2014-10-19 4 views
15

Gibt es eine Möglichkeit, die ActionBar in Material Design über Appcompat-v7 21 transparent zu machen? Dies funktioniert leider nicht.transparente Aktionsleiste mit AppCompat-v7 21

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

auch nicht die alte:

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

Antwort

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

nicht für mich scheinen :-( – ligi

+0

denken zu arbeiten ich Sie Sie https://developer.android.com/training/basics/actionbar/styling.html dieses es wird zeigen, wie sehen sollte sich ändern tick meine antwort, wenn du deine antwort bekommen hast danke vote up du hast deine antwort danke –

+0

bearbeite die antwort das funktioniert jetzt für mich –

23

Eigentlich ist es ganz einfach und unkompliziert.

  1. Einfach sicher, dass Sie RelativeLayout verwenden Toolbar und den Körper zu legen.
  2. Setzen Sie die Toolbar in die letzte.
  3. Setzen transparente Farbe für android:background Attribut des Toolbar

Dies ist ein Beispiel eines Arbeitscode:

<?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> 

Hoffe, dass es die Frage beantwortet.

+0

Netter Ansatz. Es hat die Tricks :) – nvg58

+0

Nizza. Ich habe eine Weile daran gearbeitet, bevor ich deinen Post gefunden habe. – Lars

+1

Hat jemand eine saubere Lösung für den Wechsel zwischen einer überlagerten Symbolleiste und einer oben verankerten Symbolleiste gefunden, je nachdem, welches Fragment in der Aktivität angezeigt wird? – Ryan

1

Schritt:

1. unten Stil setzen 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. Ihre Symbolleiste xml Code

<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

Keiner der oben genannten hat den Trick für mich (oder zumindest nicht von selbst) mit appcompat v7 23 und einem CoordinatorLayout, die höchstwahrscheinlich der Schuldige ist. Wenn Sie diesen Weg gehen, dann haben Sie wahrscheinlich eine Haupttätigkeit Layout, das

<?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">--> 
    ... 

Beachten Sie die beiden Layout Ankertrossen oben wie

sieht - über die von ihr für mich getan hat.