Я хочу добавить три линейных макета в программу программно с каждой одинаковой шириной. проблема в том, что я не могу установить вес этих макетов программным путем. Я мог бы сделать это в xml, но я хочу сделать это в программе. вот что я хочу: Линейный макет Android Linear Layout Weight Programmatically
24
A
ответ
38
Вот его решение
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(0, 100);
lp.weight = 1;
См Полного решению
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);
5
Использование new LinearLayout.LayoutParams(int width, int height, float weight)
для установки весов при установке макета Params к подобозрению
2
Сделайте это так.
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);
}
2
Вы можете сделать это, установив макет веса свойства для отдельных линейных компоновок, передать его в LinearLayout - LayoutParams конструктор:
LinearLayout.LayoutParams param = new LinearLayout.LayoutParam(
LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT, 1);
или
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
0,
LayoutParams.MATCH_PARENT, 1);
Надеется, что это может помочь вам!
Работал как очарование, спасибо за быстрый ответ. Однако мне пришлось немного изменить это >> LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams (0, LayoutParams.WRAP_CONTENT); \t \t \t \t lp.weight = 1; – Bhaijaan