Existe-t-il un moyen de rendre ActionBar transparent dans Material Design via Appcompat-v7 21? Cela ne fonctionne pas malheureusement.
<item name="colorPrimary">@Android:color/transparent</item>
Aussi pas l'ancien:
<style name="Widget.Styled.ActionBar" parent="Widget.AppCompat.Light.ActionBar">
<item name="Android:background">@Android:color/transparent</item>
</style>
<!-- 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>
En fait, c'est assez facile et simple.
RelativeLayout
pour poser Toolbar
et le corps.Toolbar
dans le dernier.Android:background
de la Toolbar
Voici un exemple de code de travail:
<?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>
J'espère que ça répond à la question.
Étape:
1. mettre en dessous du style dans 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. Votre code XML de la barre d'outils
<Android.support.v7.widget.Toolbar
Android:id="@+id/toolbar"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
app:theme="@style/TransperantToolbar"/>
Aucune de ce qui précède n’a été décisive pour moi (ou du moins pas par eux-mêmes). Si vous choisissez cette voie, vous avez probablement une structure d’activité principale qui ressemble à
<?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">-->
...
Remarquez les deux lignes d'ancrage de mise en page ci-dessus - celles-ci l'ont fait pour moi.