Aggiungo dinamicamente le viste a un layout relativo (diciamo contenitore) in un ciclo for. C'è qualcosa di strano che sto notando.
Quando aggiungo le righe una sotto l'altra in un layout relativo in un ciclo for, Vedo che la prima volta alcune delle viste si sovrappongono. Ma quando blocco e sblocco lo schermo, posso vedere che le viste sono posizionate correttamente.
Dovrei essere a conoscenza di qualcosa quando si aggiungono le viste dinamicamente a un layout relativo?L'aggiunta dinamica di viste in un ciclo for si traduce in un posizionamento casuale - Android
Modifica
ho trovato una soluzione su come sbarazzarsi di questo (si prega di controllare la mia risposta). Ma sarei più che felice di accettare una risposta che analizzi questo problema e mi spieghi perché questo accade.
Ho semplificato il codice e i commenti dovrebbero dare una buona idea di ciò che sto facendo.
int prev_id=ID_OF_THE_ELEMENT_ABOVE;
/*Empty RelativeView with width and height as MATCH_PARENT and WRAP_CONTENT respectively*/
RelativeLayout container=(RelativeLayout) findViewById(R.id.container);
while(ThereIsData){
/*GET THE DATA HERE THAT HAS TO BE ASSIGNED TO EACH TEXTVIEW*/
...
/* ADD TEXTVIEW #1 below prev_id/
...
...
/*ADD TEXTVIEW #2 (WITH BASELINE OF TEXTVIEW#
...
...
/*TEXTVIEW #3 (BELOW TEXTVIEW#1)*/
...
...
/*TEXTVIEW #4 (BELOW TEXTVIEW#2)*/
...
...
/*ASSIGN THE ID OF TEXTVIEW#3 TO prev_id SO THAT
IN THE NEXT ITERATION TEXTVIEW#1 CAN USE prev_id
*/
prev_id=ID(TEXTVIEW#2);
/*ADD TEXTVIEWS CREATED IN THIS ITERATION*/
container.addView(TEXTVIEW#1);
container.addView(TEXTVIEW#2);
container.addView(TEXTVIEW#3);
container.addView(TEXTVIEW#4);
}
Tutti gli aggiornamenti sul vostro problema? –
@KirilAleksandrov: ho una soluzione al problema. Puoi pagare la mia risposta. Sto cercando di scoprire perché questo comportamento sta accadendo. Mi hai dato una soluzione, ma sono più interessato a sapere cosa sta succedendo internamente, che sta causando il problema. – Ashwin