2010-08-25 5 views
2

Je rencontre actuellement des problèmes avec un SlidingDrawer. Je veux qu'il soit fermé lorsque l'application démarre pour ne pas gêner. Cependant, il est déterminé qu'il sera ouvert, bien que mettre slide.close() dans le onCreate() de mon activité. Il semble être fermé si j'utilise slide.animateClose() à la place, mais cela ralentit mon application.État par défaut d'Android SlidingDrawer?

Comment le fermer par défaut?

Vive

<SlidingDrawer 
    android:layout_width="fill_parent" 
    android:padding="4dp" 
    android:id="@+id/Mnu_Slide" 
    android:content="@+id/Mnu_SlideCont" 
    android:handle="@+id/Mnu_SlideBtn" 
    android:layout_gravity="bottom" 
    android:layout_height="112dp"> 
    <ImageView 
     android:id="@id/Mnu_SlideBtn" 
     android:src="@drawable/handle1" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" /> 
    <LinearLayout 
     android:id="@id/Mnu_SlideCont" 
     android:layout_height="wrap_content" 
     android:layout_width="fill_parent" 
     android:orientation="horizontal" 
     android:gravity="center_vertical|center_horizontal" android:background="@drawable/tray1xml"> 
      <ImageView 
       android:id="@+id/Mnu_Chem" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:src="@drawable/icon" /> 
      <ImageView 
       android:id="@+id/Mnu_Physics" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:src="@drawable/physicon" /> 
    </LinearLayout> 
</SlidingDrawer> 

Répondre

2

Je ne vois rien de mal à cela évidemment. Il ressemble beaucoup à mon propre code SlidingDrawer (que j'ai inclus dans this question) et qui commence toujours fermé, sans besoin de le fermer explicitement dans la méthode onCreate().

Je suppose que cela pourrait avoir quelque chose à voir avec ce que cette vue est logée à l'intérieur: est-ce par hasard dans un LinearLayout? Essayez de le remplacer par un RelativeLayout à la place. Les docs for SlidingDrawer sont un peu vagues, mais ils ne disent:

SlidingDrawer doit être utilisé comme une superposition intérieur mises en page. Cela signifie que SlidingDrawer doit uniquement être utilisé à l'intérieur d'un FrameLayout ou d'un RelativeLayout par exemple.

Espérons que ça aide.