I need to create a fragment
with the following format :
Header
at the top, followed by a table
, and then a footer
.
I need to create the layout programmatically. I have the following code that is used to create a template.
It has everything I need but the table still takes up the whole screen, unless I uncomment the vscoll padding.
// Setup
int id_mainrelativelayout = Menu.FIRST + 200;
int id_headerrelativelayout = Menu.FIRST + 201;
int id_middlerelativelayout = Menu.FIRST + 202;
int id_footerrelativelayout = Menu.FIRST + 203;
int id_header1 = Menu.FIRST + 204;
int id_footer1 = Menu.FIRST + 205;
int id_textview0 = Menu.FIRST + 210;
int id_textview1 = Menu.FIRST + 215;
int id_textview2 = Menu.FIRST + 220;
int id_textview3 = Menu.FIRST + 225;
int id_body = Menu.FIRST + 230;
int id_switch = Menu.FIRST + 235;
int id_mytable = Menu.FIRST + 240;
int id_tablerow = Menu.FIRST + 246;
RelativeLayout.LayoutParams linearvparam = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
RelativeLayout.LayoutParams linearh1param = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
RelativeLayout.LayoutParams linearh2param = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
RelativeLayout.LayoutParams linearh3param = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
RelativeLayout.LayoutParams textview0param = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
RelativeLayout.LayoutParams textview1param = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
RelativeLayout.LayoutParams textview2param = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
RelativeLayout.LayoutParams textview3param = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
RelativeLayout.LayoutParams imageview1param = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
RelativeLayout.LayoutParams tableDetails= new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
TableRow.LayoutParams tablerowparam10 = new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1.0f);
TableRow.LayoutParams tablerowparam08 = new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 0.8f);
TableRow.LayoutParams tablerowparam05 = new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 0.5f);
TableRow.LayoutParams tablerowparam01 = new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 0.1f);
TableRow.LayoutParams tablerowparam00 = new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 0.0f);
//tablerowparam10.topMargin = 220;
//tablerowparam10.span = 1;
// Layout
RelativeLayout mainrelativelayout = new RelativeLayout(getActivity());
RelativeLayout headerrelativelayout = new RelativeLayout(getActivity());
RelativeLayout middlerelativelayout = new RelativeLayout(getActivity());
RelativeLayout footerrelativelayout = new RelativeLayout(getActivity());
RelativeLayout.LayoutParams mainrelativelayoutparam = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
RelativeLayout.LayoutParams headerrelativelayoutparam = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
RelativeLayout.LayoutParams middlerelativelayoutparam = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
RelativeLayout.LayoutParams footerrelativelayoutparam = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
mainrelativelayout.setId(id_mainrelativelayout);
headerrelativelayout.setId(id_headerrelativelayout);
middlerelativelayout.setId(id_middlerelativelayout);
footerrelativelayout.setId(id_footerrelativelayout);
headerrelativelayoutparam.addRule(mainrelativelayout.ALIGN_PARENT_TOP);
footerrelativelayoutparam.addRule(mainrelativelayout.ALIGN_PARENT_BOTTOM);
middlerelativelayoutparam.addRule(mainrelativelayout.BELOW,headerrelativelayout.getId());
middlerelativelayoutparam.addRule(mainrelativelayout.ABOVE,footerrelativelayout.getId());
LinearLayout header1linearlayout = new LinearLayout(getActivity());
LinearLayout middle1linearlayout = new LinearLayout(getActivity());
LinearLayout footer1linearlayout = new LinearLayout(getActivity());
LinearLayout.LayoutParams header1linearlayoutparam = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);
LinearLayout.LayoutParams middle1linearlayoutparam = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);
LinearLayout.LayoutParams footer1linearlayoutparam = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);
//header1linearlayout.setPadding(00,00,00,00);
//middle1linearlayout.setPadding(00,00,00,00);
//footer1linearlayout.setPadding(00,00,00,00);
TableLayout maintable = new TableLayout (getActivity());
maintable.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.MATCH_PARENT));
maintable.setWeightSum(1);
maintable.setStretchAllColumns(true);
maintable.setColumnShrinkable(0, true);
maintable.setColumnStretchable(0, true);
maintable.setColumnShrinkable(1, true);
maintable.setColumnStretchable(1, true);
maintable.removeAllViews();
RelativeLayout.LayoutParams header1param = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
TextView header1 = new TextView(getActivity());
header1.setId(id_header1);
header1.setText("Header");
header1.setTextSize(30);
header1.setPadding(00,00,00,00);
header1.setSingleLine(false);
header1.setTextColor(Color.BLACK);
header1.setGravity(Gravity.CENTER);
//header1param.addRule(RelativeLayout.CENTER_HORIZONTAL);
//header1.setLayoutParams(matchmatch);
header1linearlayout.addView(header1,header1param);
for (int i = 0; i < 25; i++) {
TableLayout.LayoutParams tableRowParams= new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT,TableLayout.LayoutParams.MATCH_PARENT);
tableRowParams.setMargins(00, 00, 00, 10); //left,top,right,bottom
TableRow tablerow = new TableRow(getActivity());
tablerow.setId(i);
tablerow.setLayoutParams(tableRowParams);
tablerow.isClickable();
tablerow.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
commonfunc.myprint("#######" + v.getId());
v.setBackgroundColor(getResources().getColor(android.R.color.holo_red_light));
}
});
LinearLayout linearv = new LinearLayout(getActivity());
linearv.setOrientation(LinearLayout.VERTICAL);
linearv.setPadding(00,00,00,00);
LinearLayout linearh1 = new LinearLayout(getActivity());
linearh1.setOrientation(LinearLayout.HORIZONTAL);
linearh1.setPadding(00,00,00,00);
LinearLayout linearh2 = new LinearLayout(getActivity());
linearh2.setOrientation(LinearLayout.HORIZONTAL);
linearh2.setPadding(00,00,00,00);
LinearLayout linearh3 = new LinearLayout(getActivity());
linearh3.setOrientation(LinearLayout.HORIZONTAL);
linearh3.setBackgroundColor(Color.BLACK);
linearh3param.height = 5;
linearh3.setPadding(00,00,00,00);
linearh3.setLayoutParams(linearh3param);
//Row1
RelativeLayout calender_image_text = new RelativeLayout(getActivity());
ImageView imageview1 = new ImageView(getActivity());
imageview1.setBackgroundResource(R.mipmap.calendar);
imageview1.setPadding(00,00,00,00);
//imageview1.setMaxHeight(150);
//imageview1.setMaxWidth(150);
LinearLayout.LayoutParams imageview2param = new LinearLayout.LayoutParams(120, 80);
imageview1param.addRule(RelativeLayout.CENTER_IN_PARENT);
calender_image_text.addView(imageview1,imageview2param);
//linearh1.addView(calender_image_text,tablerowparam00);
TextView textview0 = new TextView(getActivity());
textview0.setId(id_textview0);
textview0.setText("Dec 0" + i);
//textview0.setTextSize(12);
textview0.setPadding(00,00,00,00);
textview0.setSingleLine(false);
textview0.setTextColor(Color.BLACK);
//textview0.setGravity(Gravity.LEFT);
//textview0param.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
//textview0param.addRule(RelativeLayout.LEFT_OF,imageview1.getId());
//textview0param.addRule(RelativeLayout.RIGHT_OF,imageview1.getId());
//textview0param.addRule(RelativeLayout.ALIGN_TOP,imageview1.getId());
textview0param.addRule(RelativeLayout.CENTER_IN_PARENT,imageview1.getId());
textview0.setGravity(Gravity.CENTER);
textview0.setLayoutParams(textview0param);
calender_image_text.addView(textview0,textview0param);
linearh1.addView(calender_image_text,tablerowparam00);
// or
TextView textview00 = new TextView(getActivity());
textview00.setId(id_textview1);
textview00.setText("Dec 25");
textview00.setBackgroundResource(R.mipmap.calendar);
//textview1.setTextSize(20);
textview00.setPadding(00,00,00,00);
textview00.setSingleLine(false);
textview00.setTextColor(Color.BLACK);
textview00.setGravity(Gravity.CENTER);
textview00.setLayoutParams(textview1param);
//linearh1.addView(textview00,tablerowparam01);
TextView textview1 = new TextView(getActivity());
textview1.setId(id_textview1);
textview1.setText("RowOneLeft " + i);
//textview1.setTextSize(20);
textview1.setPadding(00,00,00,00);
textview1.setSingleLine(false);
textview1.setTextColor(Color.BLACK);
textview1.setGravity(Gravity.LEFT);
textview1param.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
textview1.setLayoutParams(textview1param);
linearh1.addView(textview1,tablerowparam08);
TextView textview2 = new TextView(getActivity());
textview2.setId(id_textview2);
textview2.setText("RowOneRight " + i);
//textview2.setTextSize(20);
textview2.setPadding(00,00,00,00);
textview2.setSingleLine(true);
textview2.setTextColor(Color.BLACK);
textview2.setGravity(Gravity.RIGHT);
textview2param.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
textview2.setLayoutParams(textview2param);
linearh1.addView(textview2,tablerowparam01);
//Row2
TextView textview3 = new TextView(getActivity());
textview3.setId(id_textview3);
textview3.setText("This Needs To Wrap This Needs To Wrap This Needs To Th12345678is Needs To WrapThis Needs To Wrap This Needs To Wrap This Needs To This Needs To WrapEnd " + i);
//textview3.setTextSize(20);
textview3.setPadding(00,00,00,00);
textview3.setSingleLine(false);
textview3.setTextColor(Color.BLACK);
textview3.setGravity(Gravity.LEFT);
textview3param.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
textview3.setLayoutParams(textview3param);
linearh2.addView(textview3,tablerowparam10);
linearv.addView(linearh1,linearh1param); // image subject switch
linearv.addView(linearh2,linearh2param); // body
linearv.addView(linearh3,linearh3param); // line
tablerow.addView(linearv);
maintable.addView(tablerow);
}
//Set padding order by Left, Top, Right and Bottom side in pixels.
RelativeLayout.LayoutParams footer1param = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
TextView footer1 = new TextView(getActivity());
footer1.setId(id_footer1);
footer1.setText("Footer");
footer1.setTextSize(30);
footer1.setPadding(00,00,00,00);
footer1.setSingleLine(false);
footer1.setTextColor(Color.BLACK);
footer1.setGravity(Gravity.CENTER);
footer1param.addRule(RelativeLayout.CENTER_HORIZONTAL);
//footer1.setLayoutParams(matchmatch);
footer1linearlayout.addView(footer1,footer1param);
RelativeLayout.LayoutParams scrollparam = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
ScrollView vscroll = new ScrollView(getActivity());
vscroll.setFillViewport(true);
vscroll.setPadding(00,180,00,180);
vscroll.addView(maintable,tableDetails);
headerrelativelayout.addView(header1linearlayout,header1param);
middlerelativelayout.addView(vscroll,scrollparam);
footerrelativelayout.addView(footer1linearlayout,footer1param);
mainrelativelayout.addView(headerrelativelayout,headerrelativelayoutparam); // (child,it's higher parent)
mainrelativelayout.addView(middlerelativelayout,mainrelativelayoutparam);
mainrelativelayout.addView(footerrelativelayout,footerrelativelayoutparam);
view =mainrelativelayout;
return view;
}
if you put this
it will use the full window, try this set specifed sizes, like "500", "700", if it work you will need to set the size of the sreen - the size of the footer and the header
in my code i use:
just one question, why you need to do everything programmatically?