2011-10-10 18 views
14

tengo este códigoSe inflar la vista sin el margen

View item = View.inflate(context, R.layout.item_layout, null); 
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, 
         LayoutParams.WRAP_CONTENT); 
    layout.addView(item, params); 

mi item_layout: (tenga en cuenta la parte androide: layout_marginTop = "2dip")

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="wrap_content" android:layout_marginTop="2dip" android:layout_width="fill_parent"> 

    <ImageView android:src="@drawable/pic_unknown" android:id="@+id/image1" 
     android:layout_height="50dip" android:layout_width="50dip" 
     android:padding="5dip"></ImageView> 
</RelativeLayout> 

y luego en mi diseño de Veo la lista de elementos inflados pero sin margen entre ellos. Intenté con margintop = 10dip, aún no pasó nada, mi punto es que el valor que pongo en el diseño no se toma en el cálculo, con o sin el margen superior, el diseño es el mismo.

¿Cómo puedo agregar un espacio vacío entre los elementos? ¿Cómo puedo inflar un espacio vacío entre los elementos? ¿Es posible inflar algo como espacio o espacio? o debo usar una solución como inflar un diseño vacío con una altura de 2 puntos o algo Gracias

Respuesta

19

El último parámetro del método inflar es el parámetro al que se agrega la vista inflada. En su caso es null. Pruebe esto en su lugar:

View item = View.inflate(context, R.layout.item_layout, layout); 
+0

buena sugerencia. es el attachToRoot. –

+10

El problema que tengo es que estoy inflando una 'Vista' para adjuntarla a un' ListView' como encabezado; si uso 'ListView' en el inflador arroja una excepción. ¿Cómo obtendría los márgenes en esta instancia? –

+0

¿cuál es el diseño? –

3

Pruebe rellenando el RelativeLayout en su lugar si sus márgenes se aplican al exterior.

0

Puede añadir margen a la disposición que se infla como a continuación:

final LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 
                       ViewGroup.LayoutParams.WRAP_CONTENT); 
     params.topMargin = 10; 
Cuestiones relacionadas