Autore Topic: Impostare margini in un ciclo for  (Letto 228 volte)

Offline minomic

  • Nuovo arrivato
  • *
  • Post: 24
  • Respect: +2
    • Mostra profilo
Impostare margini in un ciclo for
« il: 11 Luglio 2014, 12:34:22 CEST »
0
Ciao a tutti, sto cercando di aggiungere delle TextView nel mio layout da codice Java.
La struttura del file XML è la seguente (omettendo le informazioni non necessarie):
Codice (XML): [Seleziona]
<ScrollView>

    <RelativeLayout_1>

        <RelativeLayout_2>

            <TextView/>

            <EditText/>
        </RelativeLayout>
    </RelativeLayout>

</ScrollView>

Quindi nell'activity faccio

Codice (Java): [Seleziona]
    mLayout = (RelativeLayout) findViewById(R.id.relative_layout);

    RelativeLayout.LayoutParams relativeParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

    relativeParams.addRule(RelativeLayout.ALIGN_LEFT, R.id.handicap_layout);
    relativeParams.addRule(RelativeLayout.BELOW, R.id.handicap_layout);

    TextView[] texts = new TextView[6];

    for(int i=0; i<6; i++) {
        texts[i] = new TextView(MyActivity.this);
        texts[i].setText("Text " + (i+1));
        texts[i].setTextSize(20);
        relativeParams.setMargins(0, 10+(10*i), 0, 0);   /* aumenta il margine superiore */
        texts[i].setLayoutParams(relativeParams);
        mLayout.addView(texts[i]);
    }

dove mLayout si riferisce a RelativeLayout_1 e handicap_layout a RelativeLayout_2.

Il problema è che i margini non aumentano e le TextView vengono visualizzate una sopra all'altra.
Qualcuno ha qualche idea? Grazie!

Post unito: 11 Luglio 2014, 14:29:13 CEST
Ok, ho risolto: la dichiarazione dei parametri andava fatta dentro al ciclo for.
« Ultima modifica: 11 Luglio 2014, 14:29:13 CEST da minomic, Reason: Merged DoublePost »