2014-10-19 12 views
15

Czy istnieje sposób, aby pasek akcji był przezroczysty w Material Design za pomocą Appcompat-v7 21? To nie działa niestety.przezroczysty pasek kontrolny z AppCompat-v7 21

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

też nie stary:

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

Odpowiedz

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

nie wydają się działać dla mnie :-( – ligi

+0

myślę, że powinieneś zobaczyć https://developer.android.com/training/basics/actionbar/styling.html ten powie to, jak zmienić kolor paska akcji: zaznacz moją odpowiedź, jeśli uzyskasz odpowiedź, podziękuj, uzyskałeś odpowiedź dzięki –

+0

edytuj odpowiedź, która działa dla mnie teraz –

23

Właściwie, to całkiem proste.

  1. Wystarczy upewnić się, że używasz RelativeLayout położyć Toolbar i ciało.
  2. Umieść Toolbar w ostatnim.
  3. Put kolor przezroczysty dla android:background atrybut Toolbar

To jest przykład kodeksu pracy:

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

Mam nadzieję, że odpowiedzi na to pytanie.

+0

Przyjemne podejście. Robił triki :) – nvg58

+0

Nice. Pracowałem nad tym przez jakiś czas, zanim znalazłem twój post. – Lars

+1

Czy ktoś wymyśli czyste rozwiązanie dotyczące zamiany między nałożonym paskiem narzędzi a górnym paskiem narzędzi Toolbar w zależności od fragmentu wyświetlanego w ramach działania? – Ryan

1

krok:

1. umieścić poniżej stylu do 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. Kod Pasek 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

Żadna z powyższych nie zrobiła dla mnie sztuczki (lub przynajmniej nie sama) przy użyciu appcompat v7 23 i CoordinatorLayout, który jest najprawdopodobniej winowajcą. Jeśli idziesz tą drogą, to prawdopodobnie masz główny układ aktywności, który wygląda jak

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

zauważy dwie linie kotwiczne układ powyżej - ci zrobił to dla mnie.