Bâtiment sur CommonsWare de réponse, vous pouvez le faire avec un couple d'ajustements. Le premier consiste à fixer les trois lignes suivantes:
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_OPEN);
drawerLayout.setScrimColor(getResources().getColor(R.color.drawerNoShadow));
isDrawerLocked = true;
Le drawerNoShadow couleur peut juste être un no-alpha de la couleur (comme 0x00000000). Que vous obtient un tiroir sans fond de superposition.
La deuxième chose que vous devez faire est d'ajuster la padding_left valeur de votre FrameLayout. Pour ce faire, vous pouvez configurer une dimension de contrôle de la ce (0dp par défaut) - dans cet exemple, R. dimen.drawerContentPadding. Vous aurez aussi besoin d'un R. dimen.drawerSize valeur qui sera la largeur de la DrawerLayout.
Cela vous permet de vérifier la paddingLeft valeur de la FrameLayout à l'appel de ces lignes.
FrameLayout frameLayout = (FrameLayout)findViewById(R.id.content_frame);
if(frameLayout.getPaddingLeft() == (int)getResources().getDimension(R.dimen.drawerSize) {
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_OPEN);
drawerLayout.setScrimColor(getResources().getColor(R.color.drawerNoShadow));
isDrawerLocked = true;
}
Vous pouvez ensuite l'envelopper de toutes les fonctionnalités que vous ne souhaitez pas activer en if(!isDrawerLocked)
déclaration. Il s'agira notamment:
drawerLayout.setDrawerListener(drawerToggle);
getActionBar().setDisplayHomeAsUpEnabled(true);
Enfin, vous avez besoin de l'installation d'autres dispositions pour le point de vue statique d'un tiroir. Un exemple est:
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- The navigation drawer -->
<ListView
android:id="@+id/left_drawer"
android:layout_width="@dimen/drawerSize"
android:layout_height="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp"
android:background="#111"/>
</android.support.v4.widget.DrawerLayout>
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="@dimen/drawerContentPadding"/>
La beauté est ici que vous pouvez ensuite contrôler l'ensemble de la logique par la mise en place suppléant dimen.xml les fichiers pour les appareils que vous souhaitez cibler et la seule chose que vous avez besoin de changer la valeur de drawerContentPadding et de proposer la modification de l'agencement.
NOTE: j'ai utilisé le margin_left au lieu de padding_left puisque dans la nouvelle mise en page, il superpositions le tiroir. Voir plus en profondeur le blog à propos de la technique à http://derekrwoods.com/2013/09/creating-a-static-navigation-drawer-in-android/