2010-11-03 6 views
5

J'ai un tiroir coulissant dans mon application. Si je mets wrap_content en valeur pour le champ layout_height, le tiroir du curseur s'étendra sur tout l'écran. Utiliser une constante comme hauteur n'est pas non plus une bonne alternative. Est-il possible d'avoir un tiroir coulissant avec la hauteur de son contenu?Définir la hauteur du tiroir coulissant

Merci d'avance!

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/frameLayout" 
    android:layout_gravity="bottom" 
    android:orientation="vertical"> 
    <View 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:background="@color/blue"/> 
    <SlidingDrawer 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:handle="@+id/handle" 
     android:content="@+id/content" 
     android:id="@+id/slide" 
     android:orientation="vertical"> 
    <RelativeLayout android:id="@+id/handle" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:background="@drawable/list_header"> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_centerVertical="true" 
      android:layout_marginLeft="@dimen/padding" 
      android:textColor="@color/black" 
      android:textStyle="bold" 
      android:text="@string/ingredients_list_title"/> 
     <ImageView 
      android:id="@+id/handle_indicator" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentRight="true" 
      android:layout_centerVertical="true" 
      android:layout_marginRight="@dimen/padding" 
      android:src="@drawable/arrow_up" 
     /> 
    </RelativeLayout> 
    <RelativeLayout android:id="@+id/content" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:background="@drawable/list_row_background"> 
     <LinearLayout android:id="@+id/list_ant_title" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_above="@+id/gallery" 
      android:orientation="vertical"> 
       <ListView 
       android:id="@+id/listview" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:divider="@drawable/divider" 
       android:cacheColorHint="@color/transparent" 
       android:fadingEdge="none"/> 
     </LinearLayout> 
     <Gallery 
      android:id="@+id/gallery" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:gravity="center_horizontal" 
      android:layout_alignParentBottom="true" 
      android:background="@drawable/list_row_background"/> 
    </RelativeLayout> 
</SlidingDrawer> 

Répondre

1

Quel est le conteneur? Un LinearLayout? Ajoutez un autre élément vide et attribuez-leur un poids de 1.

+0

Il s'agissait d'un FrameLayout. Je l'ai changé pour LinearLayout et définir les poids. Mais c'est la même chose. – Gratzi

+0

Pouvez-vous poster la mise en page? – EboMike

+0

Je l'ai posté dans la question initiale. J'ai fait quelques corrections et la dernière conclusion est que si je place les poids à 1 pour la vue fictive et le tiroir, les deux auront la hauteur égale à la moitié de l'écran. Je voudrais avoir un tiroir coulissant avec la hauteur égale à sa hauteur de contenu. – Gratzi

1

Utilisez l'attribut topOffset pour SlidingDrawer.

comme ceci.

<SlidingDrawer 
    ... 
    android:topOffset="800px"> 
Questions connexes