2016-02-22 2 views
0

Я динамически генерирую некоторые ToggleButtons, но я не достиг цели, чтобы избежать того, что кнопки соединяются между ними.Маржа при сгенерированных ToggleButtons динамически

Мой код следующий, что я делаю неправильно?

private void generateToggleButton(){ 

    RelativeLayout.LayoutParams lvg = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, R.dimen.tv_et_standart_small); 
    lvg.height = R.dimen.tv_et_standart_small; 
    lvg.width = RelativeLayout.LayoutParams.MATCH_PARENT; 
    lvg.setMargins(0, R.dimen.dp8, 0 ,0); 


    for(int e = 0; e < new_exp_Especies.size(); e++){ 
     final int position = e; 
     ToggleButton tb = new ToggleButton(this); 

     tb.setBackgroundDrawable(getResources().getDrawable(R.drawable.customshape_orange_red)); 
     tb.setText(new_exp_Especies.get(position).EspecieDesc); 
     tb.setTextOff(new_exp_Especies.get(position).EspecieDesc); 
     tb.setTextOn(new_exp_Especies.get(position).EspecieDesc); 
     tb.setTextSize(12); 
     tb.setGravity(Gravity.CENTER); 
     tb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
      @Override 
      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
       if (isChecked) { 
        buttonView.setBackgroundDrawable(getResources().getDrawable(R.drawable.customshape_green)); 
        new_exp_Especies.get(position).setValue(1); 
       } else { 
        buttonView.setBackgroundDrawable(getResources().getDrawable(R.drawable.customshape_orange_red)); 
        new_exp_Especies.get(position).setValue(0); 
       } 
      } 
     }); 
     tb.setLayoutParams(lvg); 

     ll_tbt_especie.addView(tb); 
    } 

} 
+0

вам нужно получить значение ... читать документ: 'R.dimen.tv_et_standart_small',' R.dimen.dp8' - это не то, что вы думаете ... вам нужно использовать метод класса справа из класса «Ресурсы» – Selvin

ответ

0

После многих попыток, наконец, я решил проблему с:

final LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, getResources().getDimensionPixelOffset(R.dimen.tv_et_standart_small)); 
lparams.gravity = Gravity.CENTER; 
lparams.topMargin = getResources().getDimensionPixelOffset(R.dimen.dp8);