2011-10-10 3 views
14

J'ai ce codeIl gonfle la vue sans la marge

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); 

mon item_layout: (notez la partie android: 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> 

puis dans ma mise en page que je vois la liste des articles gonflés mais sans marge entre eux. J'ai essayé avec margintop = 10dip encore rien ne se passe mon point est que la valeur que je mets dans la mise en page n'est pas prise dans le calcul avec ou sans la marge supérieure la disposition est la même.

Comment puis-je ajouter un espace vide entre les éléments? Comment gonfler un espace vide entre les éléments? Est-il possible de gonfler quelque chose comme un espace ou un espace? ou je dois utiliser comme solution de contournement gonfler une mise en page vide avec une hauteur de 2dip ou quelque chose Merci

Répondre

19

Le dernier paramètre de la méthode décompressé est le paramètre auquel vous ajoutez la vue gonflé. Dans votre cas, il s'agit de null. Essayez ceci à la place:

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

bonne suggestion. c'est le attachToRoot. –

+10

Le problème que j'ai est que je gonfle un 'View' pour l'attacher à un' ListView' en tant qu'en-tête; si j'utilise le 'ListView' dans le inflatable, il lance une exception. Comment pourrais-je obtenir les marges dans ce cas? –

+0

quelle est la disposition? –

3

Essayez de remplacer le RelativeLayout à la place si vos marges s'appliquent à l'extérieur.

0

Vous pouvez ajouter à la marge mise en page que vous gonflé comme ci-dessous:

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