studio programacion herramientas fundamentos con avanzado aplicaciones android android-linearlayout weight

programacion - Peso de diseño lineal de Android programáticamente



manual de android en pdf (4)

Quiero agregar tres diseños lineales a una actividad programáticamente, cada uno con el mismo ancho. El problema es que no puedo establecer los pesos de estos diseños mediante programación. Podría hacer esto dentro de xml, pero quiero hacer esto en el programa. Esto es lo que quiero:


Aquí es la solución

LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(0, 100); lp.weight = 1;

Ver solución completa

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);


Hacer de esta manera ..

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); }


Puede hacerlo configurando la propiedad de peso del diseño para sus diseños lineales individuales, páselo en el constructor LinearLayout - LayoutParams:

LinearLayout.LayoutParams param = new LinearLayout.LayoutParam( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 1);

o

LinearLayout.LayoutParams param = new LinearLayout.LayoutParams( 0, LayoutParams.MATCH_PARENT, 1);

Espero que te pueda ayudar!


Use el new LinearLayout.LayoutParams(int width, int height, float weight) para establecer pesos al configurar parámetros de diseño para las subvistas