java - Why do my programatically added TableRows not float in line with my table-header? -
java - Why do my programatically added TableRows not float in line with my table-header? -
my goal:
i trying populate table(with headline created in xml) bunch of programmatically added views. plan add together textviews
tablerow
, add together tablerow
final table created. tried follow this tutorial.
my problem:
the programmatically added views not go inline columns xml-created textviews dictate. please see next screenshot:
my code: 1.) xml
<tablelayout android:id="@+id/tableviewtable" android:layout_width="match_parent" android:layout_height="wrap_content" > <tablerow android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="10dp" > <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right" android:layout_marginright="@dimen/margin_evalproblemtableright" android:layout_marginbottom="@dimen/margin_evalproblemtablebottom" android:text="@string/str_evalproblemnumber" android:textappearance="?android:attr/textappearancemedium" /> <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right" android:layout_marginright="@dimen/margin_evalproblemtableright" android:layout_marginbottom="@dimen/margin_evalproblemtablebottom" android:text="@string/str_evalproblemstring" android:textappearance="?android:attr/textappearancemedium" /> <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right" android:layout_marginright="@dimen/margin_evalproblemtableright" android:layout_marginbottom="@dimen/margin_evalproblemtablebottom" android:text="@string/str_evalproblemcorrectsolution" android:textappearance="?android:attr/textappearancemedium" /> <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right" android:layout_marginright="@dimen/margin_evalproblemtableright" android:layout_marginbottom="@dimen/margin_evalproblemtablebottom" android:text="@string/str_evalproblemusersolution" android:textappearance="?android:attr/textappearancemedium" /> <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right" android:layout_marginright="@dimen/margin_evalproblemtableright" android:layout_marginbottom="@dimen/margin_evalproblemtablebottom" android:text="@string/str_evalproblemduration" android:textappearance="?android:attr/textappearancemedium" /> </tablerow> </tablelayout>
2.) java:
public class evalactivity extends activity { @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_eval); tablelayout tableviewtable = (tablelayout) findviewbyid(r.id.tableviewtable); tablerow tr = new tablerow(this); tr.setlayoutparams(new layoutparams(layoutparams.fill_parent, layoutparams.wrap_content)); button b = new button(this); b.settext("button"); b.setlayoutparams(new layoutparams(layoutparams.fill_parent, layoutparams.wrap_content)); textview t1 = new textview(this); t1.settext("i textview1"); t1.setlayoutparams(new layoutparams(layoutparams.fill_parent, layoutparams.wrap_content)); textview t2 = new textview(this); t2.settext("i textview2"); t2.setlayoutparams(new layoutparams(layoutparams.fill_parent, layoutparams.wrap_content)); textview t3 = new textview(this); t3.settext("i textview3"); t3.setlayoutparams(new layoutparams(layoutparams.fill_parent, layoutparams.wrap_content)); textview t4 = new textview(this); t4.settext("i textview3"); t4.setlayoutparams(new layoutparams(layoutparams.fill_parent, layoutparams.wrap_content)); tr.addview(b); tr.addview(t1); tr.addview(t2); tr.addview(t3); tr.addview(t4); tableviewtable.addview(tr,(new layoutparams(layoutparams.fill_parent, layoutparams.wrap_content))); }
how can bring together "hardcoded" xml-tablerow programatically added views , rows?
try manually adding align rule layout parameters this:
layoutparams myparams = new layoutparams(layoutparams.fill_parent, layoutparams.wrap_content); myparams.addrule(relativelayout.align_right, r.id.tablecolumnx); textview t3 = new textview(this); t3.settext("i textview3"); t3.setlayoutparams(myparams);
java android textview tablelayout tablerow
Comments
Post a Comment