2011-10-10 24 views
14

Mam ten kodTo nadmuchać pogląd bez marginesu

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

mój item_layout: (zauważ część androida: 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> 

a następnie w moim układzie widzę lista przedmiotów zawyżona, ale bez marginesu pomiędzy nimi. Próbowałem z margintop = 10dip nadal nothings stało się moim punktem jest to, że wartość, którą umieściłem w układzie, nie jest brana w obliczeniach z marginesem lub bez marginesu układu jest taka sama.

Jak dodać pustą przestrzeń między przedmiotami? Jak mogę nadmuchać puste miejsce między przedmiotami? Czy można nadmuchać coś w rodzaju luki lub trochę miejsca? lub muszę użyć obejścia jak nadymanie pustego układu z wysokością 2dip lub coś takiego Dzięki

Odpowiedz

19

Ostatnim parametrem metody nadmuchiwania jest parametr, do którego dodajesz zawyżony widok. W twoim przypadku jest to null. Zamiast tego spróbuj tego:

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

dobra propozycja. to jest attachToRoot. –

+10

Problem jaki mam, to nadpisuję 'Widok', aby dołączyć go do' ListView' jako nagłówka; jeśli użyję 'ListView' w nadmuchiwaczu, zgłasza wyjątek. Jak uzyskać marginesy w tym przypadku? –

+0

jaki jest układ? –

3

Spróbuj użyć wypełnienia RelativeLayout, jeśli marginesy mają zastosowanie na zewnątrz.

0

Możesz dodać margines do układu której zawyżone jak poniżej:

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