I'm trying to write my own custom View and I have problem with LayoutParams.
The idea is to extend 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); } } } As you can see putContent method inflates an items and adds to my view. Here is an item layout
<?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> And main screen layout
<?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> And activity 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(); } } Here is screenshot of what i get

So problem is: attributes of item's root element is ignored
android:layout_width="match_parent" android:layout_height="match_parent" But in result I want to get something like this (I get this result when replace addView(view); with this line)
addView(view, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 1F)); 
So question is: how I can achieve this result without hard coded LayoutParams ? Thanks for any help!
update
I also look at the view variable fields in debug mode - the mLayoutParams is null, and became not null when I add inflated view into parent with addView(view, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 1F));.
But mLayoutParams of child of just-loaded view is not null. Why LayoutParams of only root element in xml layout are ignored when view inflated?
llin your code? Or are you adding something to the xml, and if so, what are you adding to it?llcreated dynamically in code, i inflate given xml and put it intollLayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 1F);into addView withvit works fine ! (margins are ignored in this case)