Como estender o LinearLayout corretamente para criar uma exibição personalizada

Eu tenho um "cartão", que é um LinearLayout simples com um TextView dentro

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card="http://schemas.android.com/apk/res-auto"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
>
 <TextView
        android:id="@+id/card_label_txt"
        android:layout_width="wrap_content"
        android:text="label" />
</LinearLayout>

então eu tenho meu fragmento principal com um LinearLayout vertical. e nesse fragmento principal eu adiciono esses "cards" ao layout principal:

# main fragment layout
View view = inflater.inflate(R.layout.main_activity, null);
LinearLayout ll = (LinearLayout) view
                .findViewById(R.id.main_activity_ll);
# get card
View card = inflater.inflate(R.layout.card, null);

# add to fragment layout
ll.addView(card);

isso funciona muito bem E meu cartão preenche toda a largura do layout do fragmento. Na verdade, o que estou esperando.

Agora eu criei uma classe separada para o meu cartão:

Class Card extends LinearLayout{

public Card(Context context) {
        super(context);

        View view =  LayoutInflater.from(getContext()).inflate(
                R.layout.card, null);

        this.addView(view);

    }
}

E, se eu adicionar meu cartão ao layout do fragmento principal, do seguinte modo:

# main fragment layout
View view = inflater.inflate(R.layout.main_activity, null);
LinearLayout ll = (LinearLayout) view
                .findViewById(R.id.main_activity_ll);

# add new Card to fragment layout
ll.addView(new Card(getActivity());

é adicionado, MAS a largura do cartão não é mais preenchida, mas agrupada na visualização de texto.

Alguém poderia me explicar por que obtenho tamanhos de largura diferentes com este método de adicionar dois layouts?

Solução aqui é alterada a classe Card que resolve esse problema:

public Card(Context context) {
       super(context);

       LayoutInflater.from(getContext()).inflate(
                R.layout.card, this);
    }
}

questionAnswers(1)

yourAnswerToTheQuestion