Je veux ajouter trois dispositions linéaires à une activité par programme chacune de même largeur. le problème est que je ne suis pas en mesure de définir les poids de ces dispositions par programmation. Je pourrais le faire dans xml, mais je veux le faire dans le programme. voici ce que je veux:
Voici sa solution
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(0, 100);
lp.weight = 1;
Voir la solution complète
LinearLayout ll1, ll2, ll3;
/* Find these LinearLayout by ID
i.e ll1=(LinearLayout)findViewById(R.id.ll1);
*/
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(0, 100);
lp.weight = 1;
ll1.setLayoutParams(lp);
ll2.setLayoutParams(lp);
ll3.setLayoutParams(lp);
Utilisez new LinearLayout.LayoutParams(int width, int height, float weight)
pour définir des poids lors de la définition des paramètres de mise en page pour les sous-vues
Faites de cette façon ..
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txtNote = (LinedEditText) findViewById(R.id.txtNote);
lnr = (LinearLayout) findViewById(R.id.lnr);
LinearLayout l1 = new LinearLayout(this);
LinearLayout l2 = new LinearLayout(this);
LinearLayout l3 = new LinearLayout(this);
l1.setBackgroundResource(Android.R.color.holo_green_light);
l2.setBackgroundResource(Android.R.color.holo_orange_dark);
l3.setBackgroundResource(Android.R.color.holo_blue_bright);
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.MATCH_PARENT, 1);
lnr.addView(l1, param);
lnr.addView(l2, param);
lnr.addView(l3, param);
}
Vous pouvez le faire en définissant la propriété de pondération de la disposition pour vos dispositions linéaires individuelles, passez-la dans le constructeur LinearLayout - LayoutParams:
LinearLayout.LayoutParams param = new LinearLayout.LayoutParam(
LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT, 1);
ou
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
0,
LayoutParams.MATCH_PARENT, 1);
J'espère que cela peut vous aider!