 <p>I've come up to inflate a layout and it's been way faster.</p> <pre><code> View v = inflater.inflate(R.layout.choose_activity_dialog_view, container, false); int count = 1; TableRow row = new TableRow(getContext()); TableLayout mainLayout = (TableLayout) v.findViewById(R.id.choose_activity_dialog_table_layout); for(UserActivity ua : HomeActivity.userActivityStore.getUserActivities()){ Activity currentActivity = HomeActivity.activityStore.findByActivityId(ua.getActivityId()); if(currentActivity == null) continue; View chooseActivityView = inflater.inflate(R.layout.choose_activity_item, (ViewGroup) row, false); RelativeLayout relativeLayout = (RelativeLayout) chooseActivityView.findViewWithTag("relative_layout"); row.addView(relativeLayout); if(count % 3 == 0){ count = 0; mainLayout.addView(row); row = new TableRow(getContext()); } count++; </code></pre> <p>My layout looks like this :</p> <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;!-- ACTIVITY TYPE --&gt; &lt;RelativeLayout android:layout_weight="1" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_gravity="start" android:tag="relative_layout" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_marginBottom="25dip"&gt; &lt;ImageView android:layout_width="match_parent" android:layout_height="40dp" android:src="@drawable/pct_amhe_white" android:layout_gravity="center_horizontal" android:scaleType="centerInside" /&gt; &lt;TextView android:layout_marginTop="50dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Test" android:gravity="center" android:textColor="@color/white" /&gt; &lt;/RelativeLayout&gt; </code></pre> <p>I'd advise people looking for a solution to their problem that the second argument of inflate changes a lot about the render.</p>