Thanks that's awesome. I knew I was doing something wrong Quick question whay are you using FrameLayout for the Table?
Thanks Greg On Feb 16, 7:57 pm, Romain Guy <romain...@google.com> wrote: > Your code is *NOT* equivalent to the XML. You are using the wrong > LayoutParams everywhere. A widget must have the LayoutParams of its > *parent*. Therefore, the rows must have TableLayout.LayoutParams, the > TextViews must have TableRow.LayoutParams and the TableLayout must > have FrameLayout.LayoutParams. > > Here is your code, corrected, and it works just fine. > > package com.test; > > import android.app.Activity; > import android.graphics.Color; > import android.os.Bundle; > import android.view.View; > import android.widget.FrameLayout; > import android.widget.TableLayout; > import android.widget.TableRow; > import android.widget.TextView; > > public class Test extends Activity { > /** Called when the activity is first created. */ > @Override > public void onCreate(Bundle savedInstanceState) { > super.onCreate(savedInstanceState); > setContentView(buildTableViewFromSource()); > } > > private View buildTableViewFromSource() { > FrameLayout.LayoutParams pTable = new > FrameLayout.LayoutParams( > TableRow.LayoutParams.FILL_PARENT, > TableRow.LayoutParams.FILL_PARENT); > > TableLayout table = new TableLayout(this); > table.setBackgroundColor(Color.RED); > table.setLayoutParams(pTable); > > TableRow rowTop = new TableRow(this); > > TableLayout.LayoutParams pRowTop = new > TableLayout.LayoutParams( > TableLayout.LayoutParams.FILL_PARENT, > TableLayout.LayoutParams.WRAP_CONTENT); > pRowTop.weight = 1; > > rowTop.setBackgroundColor(Color.BLUE); > > TextView txt = new TextView(this); > txt.setText("Top Content"); > > rowTop.addView(txt, new TableRow.LayoutParams( > TableRow.LayoutParams.FILL_PARENT, > TableRow.LayoutParams.WRAP_CONTENT)); > > TableRow rowBottom = new TableRow(this); > rowBottom.setBackgroundColor(Color.GREEN); > > TextView txtBottom = new TextView(this); > txtBottom.setText("Bottom Content"); > > TableLayout.LayoutParams pRowBottom = new > TableLayout.LayoutParams( > TableLayout.LayoutParams.WRAP_CONTENT, > TableLayout.LayoutParams.WRAP_CONTENT); > > rowBottom.addView(txtBottom, new TableRow.LayoutParams( > TableRow.LayoutParams.FILL_PARENT, > TableRow.LayoutParams.WRAP_CONTENT)); > > table.addView(rowTop, pRowTop); > table.addView(rowBottom, pRowBottom); > > return table; > } > > } > > -- > Romain Guy > Android framework engineer > romain...@android.com > > Note: please don't send private questions to me, as I don't have time > to provide private support. All such questions should be posted on > public forums, where I and others can see and answer them --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---