2010-03-26 17 views

Respuesta

16

Esto parece ser un error en Android, ver http://code.google.com/p/android/issues/detail?id=1394.

trabajé alrededor de ella, envolviendo mi RelativeLayout en un FrameLayout y poner mi vista inferior alineado como hijos de la FrameLayout con android:layout_gravity="bottom". Esto le impide hacer referencia a él desde el RelativeLayout, por lo que tendrá que evitarlo (por ejemplo, utilizando márgenes).

Si alguien tiene una mejor solución, por favor, comparta.

+0

Tuve el mismo problema y parece ser debido a ese error. Está arreglado en Froyo pero no en Eclair. – simao

+0

Aquí hay una solución, acabo de publicar http://code.google.com/p/android/issues/detail?id=1394#c16 – Vadim

3

Al inflar el diseño, use inflate(R.layout.whatever, parent, false), donde parent es ListView. Si no lo hace (por ejemplo, pasa null para el padre), RelativeLayout se vuelve extraño en las filas de la lista.

+0

todavía no puede conseguir que funcione. Estoy usando CursorAdapter y en newView() ahora tengo: Ver v = inflater.inflate (ROW_RESOURCE, postList, false); – alexanderblom

+0

Aquí hay un proyecto de uno de mis libros que usa 'RelativeLayouts' en filas: http://github.com/commonsguy/cw-advandroid/tree/master/Introspection/Launchalot/ - mira si eso te da alguna pista sobre dónde las cosas pueden estar yendo mal para ti. – CommonsWare

+0

Parece ser esto: http://code.google.com/p/android/issues/detail?id=1394. No corregido en 1.6. Establecer una altura fija no es realmente una opción ya que la altura necesita ser variable. ¿Alguna buena solución? O me veo forzado a crear puede tener diseño personalizado; C – alexanderblom

0

que era capaz de conseguir la alineación adecuada especificando el TextView problemática con:

android:id="@+id/must_be_bottom_left" 
android:layout_alignParentRight="true" 
android:layout_alignParentBottom="true" 
android:layout_below="@id/xxx" 

donde xxx fue el id de un TextView que tiene android:layout_below="@id/yyy"

y yyy es una TextView que está siempre por encima ambos xxx y must_be_bottom_left.

El contenido de los elementos de mi lista puede variar de modo que a veces el "xxx" TextView es View.GONE, pero incluso entonces el diseño funciona como se esperaba.

No sé qué tan frágil o simplemente seredipidous es este trabajo temporal. Estoy usando Android 1.6 y no lo he probado para compatibilidad futura.

0

Mi truco para este error andriod:

ViewGroup.LayoutParams lp=(ViewGroup.LayoutParams)view.getLayoutParams(); 
lp.height=view.getContentHeight();//hack for android bug about ViewGroup.LayoutParams.WRAP_CONTENT and android:layout_alignParentBottom="true" on landscape orientation 
view.requestLayout(); 
act.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR); 
Cuestiones relacionadas