Mise en page params de chargé de vue sont ignorés

J'essaie d'écrire ma propre View et j'ai un problème avec LayoutParams.

L'idée est d'étendre ViewGroup (LinearLayout)

public class MyView extends LinearLayout{
    public MyView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    public MyView(Context context) {
        super(context);
    }
    public void putContent(){
        setOrientation(HORIZONTAL);
        LayoutInflater inflater = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        for (int i = 0; i < 5; i++){
            View view = inflater.inflate(R.layout.item, null);
            TextView tv = (TextView)view.findViewById(R.id.item_text);
            tv.setText("Item " + i);
            addView(view);
        }
    }
}

Comme vous pouvez le voir putContent méthode gonfle un des éléments et l'ajoute à ma vue. Voici un élément de mise en page

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:background="#FFFFFF">
    <TextView android:text="TextView"
    android:id="@+id/item_text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="#000000"/>
</LinearLayout>

Et la principale disposition de l'écran

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" android:orientation="vertical">
<TextView  
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"
    android_layout_weight="1" 
    android:text="@string/hello"
    />
    <my.test.MyView
    android:id="@+id/my_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android_layout_weight="1"
    />
</LinearLayout>

Et de l'activité code

public class Start extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        MyView myView = (MyView)findViewById(R.id.my_view);
        myView.putContent();
    }
}

Voici la capture d'écran de ce que je reçois

Mise en page params de chargé de vue sont ignorés

Donc problème est le suivant: les attributs de l'élément de l'élément racine est ignoré

android:layout_width="match_parent"
android:layout_height="match_parent"

Mais dans le résultat que je veux obtenir quelque chose comme ceci (j'obtiens ce résultat quand remplacer addView(view); avec cette ligne)

addView(view, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 1F));

Mise en page params de chargé de vue sont ignorés

Donc, la question est: comment je peux obtenir ce résultat sans codé en dur LayoutParams ?
Merci pour toute aide!

mise à jour

Je regarde la view champs variables dans le debug mode - le mLayoutParams est null, et est devenu not null lorsque j'ajoute gonflé view des parents avec addView(view, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 1F));.
Mise en page params de chargé de vue sont ignorés

Mais mLayoutParams de l'enfant de tout juste chargé de vue n'est pas nulle.
Pourquoi LayoutParams de seul élément racine xml de mise en page sont ignorés lors de l'affichage gonflé?

  • J'ai ts difficile de commenter votre code sans votre code....
  • Ce n'est pas vraiment clair. Je pars du principe que ci-dessus est le xml que vous êtes gonflant? Mais qu'est-ce que le ll dans votre code? Ou êtes-vous ajouter quelque chose pour le xml, et si oui, que faites-vous en ajoutant à cela?
  • ll créé dynamiquement dans le code, je me gonfler donnée xml et de le mettre en ll
  • aussi quand je passe la nouvelle LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 1F); en addView avec v il fonctionne très bien ! (les marges sont ignorés dans ce cas)