Ho un'attività con un Navigation Drawer
e utilizzando ScrimInsetsFrameLayout
Sono riuscito a mettere il layout sotto lo StatusBar
e tutto ha funzionato perfettamente. Quindi ho deciso di sostituire il colore per Toolbar
e StatusBar
con uno sfondo png
per tutto il layout dell'attività. Eseguo l'app sull'emulatore (Nexus 5 con Android 6.0) e il risultato era esattamente quello che volevo, come si può vedere in Immagine n. 1 qui sotto, ma quando ho provato sul mio dispositivo (Galaxy Note 3 con Android 5.0) il layout all'interno di ScrimInsetsFrameLayout è andato sopra lo StatusBar
Immagine n. 2. Non riesco a capire cosa c'è che non va, puoi aiutarmi?Impossibile mettere DrawerLayout in StatusBar
Ecco la mia e la mia values-v21
activity.xml
<style parent="Theme.AppCompat.Light.NoActionBar" name="AppTheme_Activities">
<item name="android:colorPrimary">@android:color/transparent</item>
<item name="android:colorPrimaryDark">@color/insetF</item>
<item name="android:navigationBarColor">@color/insetF</item>
<item name="android:colorAccent">@color/primary</item>
<item name="android:colorEdgeEffect">@color/primary</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:statusBarColor">@color/insetF</item>
<item name="android:windowTranslucentNavigation">true</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
</style>
<?xml version="1.0"?>
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:id="@+id/drawer"
android:fitsSystemWindows="true"
android:background="@drawable/background"> <!--png image-->
<FrameLayout
android:orientation="vertical"
android:layout_height="match_parent"
android:layout_width="match_parent">
<include layout="@layout/toolbar_activities" android:id="@+id/toolbar_layout"/>
<FrameLayout
android:layout_height="match_parent"
android:layout_width="match_parent"
android:id="@+id/content_frame">
</FrameLayout>
</FrameLayout>
<com.example.myapplication.ScrimInsetsFrameLayout
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/linearLayout"
android:layout_width="304dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:insetForeground="#4000"
android:clickable="true"
android:background="#ffffff"> .....
</com.example.myapplication.ScrimInsetsFrameLayout>
</android.support.v4.widget.DrawerLayout>
quello che se si imposta la 'Android: fitsSystemWindows' del' ScrimInsetsFrameLayout' false? – Apostrofix
Il DrawerLayout semplicemente non si estende sotto lo statusBar – Pier
Controlla questo link: http://stackoverflow.com/questions/26440879/how-do-i-use-drawerlayout-to-display-over-the-actionbar-toolbar- e-under-the-st/26440880 potrebbe aiutarti. – Srikanth