Estoy tratando de implementar un SlidingDrawer
que ocupará el ancho de la pantalla completa, pero cuya altura está determinada dinámicamente por su contenido: en otras palabras, el comportamiento de diseño estándar fill_parent
para el ancho y wrap_content
para la altura. Así es exactamente como lo he especificado en el formato XML (ver a continuación), pero el cajón deslizante siempre se abre a la altura de la pantalla completa. La altura de mi contenido varía, pero generalmente es solo la mitad de la altura de la pantalla, así que termino con un gran espacio debajo. Lo que me gustaría es que el contenido se siente prolijamente en la parte inferior de la pantalla.Android: ¿se puede configurar la altura de SlidingDrawer con wrap_content?
He intentado todo lo que puedo pensar para solucionarlo pero nada ha funcionado hasta ahora. Si configuro el SlidingDrawer
como layout_height
en un valor específico (por ejemplo, 160dip
) funciona, pero eso no es lo que necesito: tiene que ser dinámico. Por supuesto, me he asegurado de que todos los elementos secundarios tengan su altura establecida en wrap_content
también.
La documentación sobre SlidingDrawer es un poco vaga en esto y no he podido encontrar ningún ejemplo que haga lo que busco tampoco. Si alguien puede ver dónde me está yendo mal, ¡realmente apreciaría su ayuda!
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ViewFlipper
android:id="@+id/ImageFlipper"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ImageView
android:id="@+id/imageView0"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="centerCrop" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="centerCrop" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="centerCrop" />
</ViewFlipper>
<SlidingDrawer
android:id="@+id/infoDrawer"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:handle="@+id/infoDrawerHandle"
android:content="@+id/infoDrawerContent"
android:allowSingleTap="false"
android:layout_alignParentBottom="true"
android:orientation="vertical" >
<!-- Sliding drawer handle -->
<ImageView
android:id="@id/infoDrawerHandle"
android:src="@drawable/info_handle_closed"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<!-- Sliding drawer content: a scroller containing a group of text views
laid out in a LinearLayout -->
<ScrollView
android:id="@id/infoDrawerContent"
android:background="@drawable/info_background"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fillViewport="false" >
<LinearLayout
android:id="@id/infoDrawerContent"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingRight="5dip" >
<TextView
android:id="@+id/infoTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#ffffff"
android:textSize="16dip"
android:textStyle="bold" />
<TextView
android:id="@+id/infoCreator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#ffffff"
android:textSize="14dip"
android:textStyle="italic"
android:paddingBottom="10dip" />
<TextView
android:id="@+id/infoDescription"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#ffffff"
android:textSize="14dip"
android:paddingBottom="10dip" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#ffcc00"
android:textSize="14dip"
android:textStyle="bold"
android:text="@string/heading_pro_tip" />
<TextView
android:id="@+id/infoProTip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#ffcc00"
android:textSize="14dip" />
</LinearLayout>
</ScrollView>
</SlidingDrawer>
</RelativeLayout>
¡Cosas geniales! Luché durante semanas con este problema del cajón deslizante. ¡Muchas gracias! – Gratzi
Es bueno n me ayudó mucho ... gracias :) – Hussain
Fantástico: gracias por una respuesta tan detallada y lo siento, me tomó tanto tiempo para llegar a aceptarlo! –