Android ImageView no coincide con_parent dentro de FrameLayout por debajo de GingerBread

Estoy tratando de construir una burbuja de discurso para una sala de chat. Cada una de las burbujas de discurso tiene la disposición xml adjunta.

Estoy logrando esto poniendo el textView en wrap_content , la burbuja de discurso imageView en match_parent y el frame_layout en wrap_content . De modo que la imagen speech_bubble detrás del texto varía según la cantidad de texto en la burbuja.

Establecer el ancho en el textView para que coincida con el padre y la altura de wrap_content y por alguna razón, funciona perfectamente como se requiere en Ice Cream Sandwich (Android 4.1). Sin embargo, en Gingerbread la burbuja interna del discurso imageView no escala a match_parent para que el texto pueda encajar perfectamente dentro de la burbuja. En Gingerbread el imageView interior permanece siempre del mismo tamaño , independientemente del texto y el texto se desborda fuera de la burbuja . A pesar de que el frameLayout se expande a wrap_content , el imageView no coincide con match_parent como se supone.

¿Alguna idea de por qué esto esta pasando? ¿Hay otro parámetro que puedo establecer a través de xml o un método que puedo llamar por programación para solucionar esto?

¡Gracias!

Comportamiento correcto en ICS:

Comportamiento correcto en ICS

Comportamiento incorrecto en GingerBread: comportamiento incorrecto en GingerBread

Diseño XML:

<merge xmlns:android="http://schemas.android.com/apk/res/android"> <FrameLayout       xmlns:android="http://schemas.android.com/apk/res/android"       android:id="@+id/speech_bubble_framelayout"       android:layout_width="wrap_content"       android:layout_height="wrap_content"       android:orientation="horizontal"       android:background="@color/color_transparent"       android:layout_toRightOf="@id/message_user_imageView">     <ImageView xmlns:android="http://schemas.android.com/apk/res/android"           android:id="@+id/message_background_imageview"           android:layout_width="match_parent"           android:layout_height="match_parent"           android:layout_margin="5dp"           android:scaleType="fitXY"           android:layout_centerInParent="true"           android:textColor="@color/color_brown_mud"           android:background="@drawable/chat_bubble_flipped"         />     <TextView         android:id="@+id/message_textView"         android:layout_width="wrap_content"         android:layout_height="match_parent"         android:maxEms="10"         android:background="@color/color_transparent"         android:textColor="@color/color_brown_uiDesign_pallete"         android:textSize="15sp"         android:textStyle="bold"         android:gravity="center_horizontal"         android:text="Message"         android:padding="5dp"         android:layout_marginLeft="25dp"         android:layout_marginRight="20dp"         android:layout_marginTop="15dp"         android:layout_marginBottom="15dp"         />   </FrameLayout> </merge> 

One Solution collect form web for “Android ImageView no coincide con_parent dentro de FrameLayout por debajo de GingerBread”

Desde el aspecto de ello, esto es causado por una dependencia circular en sus tamaños: el texto interno y el tamaño de la imagen depende de FrameLayout ( match_parent ), mientras que el tamaño de FrameLayout depende de lo que está contenido dentro ( wrap_content ). El uso de un FrameLayout se desaconseja donde más de un niño está involucrado exactamente por este motivo. Por seguridad, recomiendo cambiar el FrameLayout a RelativeLayout y establecer la siguiente propiedad en la vista de imagen interna:

 android:layout_alignTop="@+id/message_textview" android:layout_alignBottom="@+id/message_textview" 

Esto asegurará que su imagen siempre coincida con el tamaño de su texto.

  • Filtrar un ListFragment de la ActionBar en la actividad de los padres
  • Fragment y FragmentList no muestra Android Studio
  • Cómo ejecutar la acción después de pulsar el botón positivo de DialogFragment
  • MultiChoiceModeListener que causa problemas con SherlockListFragment
  • ListFragment da ListView cuyo atributo id es 'android.R.id.list'
  • Menú Ribbon de Android con fragmentos
  • Fragmento onCreate llamado varias veces cuando vuelve a cargar el Fragmento
  • GetItem (int) para devolver Listfragment en FragmentPagerAdapter
  • El adaptador personalizado getview no se llama
  • Uso de la barra de acción contextual con fragmentos
  • El color de fondo de la lista se vuelve blanco al desplazarse cuando se utiliza android.support.v4.app.ListFragment;
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.