Van egy tevékenységem, amelyhez az összes kijelzőelem dinamikusan hozzáadódik. Egyáltalán nincs xml az aktivitáshoz.
A tevékenység a következő vezérlőkből áll:
- RelativeLayout (Elrendezés objektum, amelybe az összes gyermeknézet belefér)
- TextView (az oldal címe, a RelativeLayout tetején található)
- ScrollView (görgethető terület, amely az összes adatvezérlőt tartalmazza)
- LinearLayout (Elrendezés objektum a tevékenység gombok tartásához)
Szeretném tudni, hogyan lehet meghatározni, hogy a ScrollView a Title TextView alatt és a LinearLayout gombtartó felett legyen, ahol a LinearLayout a tevékenységi oldal aljára van állítva
Megpróbáltam a RelativeLayout.LayoutParams segítségével szabályokat felállítani, de úgy tűnik, nem értem a módját. Minden segítséget vagy oktatóanyagokra mutató linket nagyra értékelnénk
Mellékeltem a kódomat, hátha valaki tud segíteni
// declare the items for display
RelativeLayout baseLayout = new RelativeLayout(this);
// add the customer name and number field.
// NOTE: We will always require this widget regardless of dialog design fields
tvCustomerNameNumber = new TextView(this);
tvCustomerNameNumber.setTextSize(20);
tvCustomerNameNumber.setText("Customer Name & Number");
// build up the linear layout of controls
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
// Scroll view.
// NOTE: We will always need this widget to enable us to scroll the page
// if too many items are added for the display size
ScrollView sv = new ScrollView(this);
sv.addView(ll);
// buttons
LinearLayout buttons = new LinearLayout(this);
buttons.setOrientation(LinearLayout.HORIZONTAL);
// button edit
Button edit = new Button(this);
edit.setId(EDIT_BUTTON_ID);
// button save
Button save = new Button(this);
save.setId(SAVE_BUTTON_ID);
// button cancel
Button cancel = new Button(this);
cancel.setId(CANCEL_BUTTON_ID);
// add each button to the button layout
buttons.addView(edit);
buttons.addView(save);
buttons.addView(cancel);
// Scroll view Layout parameters
RelativeLayout.LayoutParams scrollParams = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
scrollParams.addRule(RelativeLayout.BELOW, tvCustomerNameNumber.getId());
scrollParams.addRule(RelativeLayout.ABOVE, buttons.getId());
// buttons Layout parameters
RelativeLayout.LayoutParams buttonParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
buttonParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
buttonParams.addRule(RelativeLayout.BELOW, sv.getId());
// add the customer name number field to the base layout
baseLayout.addView(tvCustomerNameNumber);
// add the scroll view to the base layout
baseLayout.addView(sv); //, scrollParams);
// add the buttons to the base layout
baseLayout.addView(buttons, buttonParams);
// set the content view
this.setContentView(baseLayout);