Domanda Risolto Problema Spostamento TextView Android Studio

Stato
Discussione chiusa ad ulteriori risposte.

D4v1d_MoDz

Utente Electrum
1 Febbraio 2015
149
51
7
148
Salve a tutti, da poco sto utilizzando Android Studio per creare applicazioni android.
Sto seguendo un corso su udemy...
Comunque succede che quando metto da ConstraintLayout a RelativeLayout, accade che non riesco a spostare gli oggetti nel design dell'app, per esempio la textview che quando la metto, si blocca in alto a sinistra e non si può spostare da lì e anche se provo a spostarlo ritorna nella posizione in alto a sinistra.
Potete aiutarmi per favore...?
P.s : So che potreste dire cambia da Relative a Constrain, però essendo che non so usare Android Studio per bene perchè sono ancora all'inizio del corso vorrei rimanere Relative per seguire passo passo il corso. Vi ringrazio della disponibilità! :)


Per evitare di avere risposte che potrebbero capitare:
  • Ho già cercato su google senza risolvimento del problema.
  • Ho già cercato su StackOverFlow e da altre parti senza risolvimento del problema.
 
Disclaimer: Non ho mai usato AS ma ho esperienza con XCode e lo sviluppo di app iOS, e la dinamica credo sia simile.
Una ConstraintLayout (ipotizzo) ti permette di definire una posizione assoluta nello spazio (es: 40 pt dall'alto e 50 pt da sinistra) , una RelativeLayout (sempre ipotizzo) invece ti permette di esprimere la posizione dell'oggetto in funzione della posizione di un altro oggetto, dunque non puoi spostarla a piacimento, ma lui seguirà sempre la posizione dell'oggetto a cui si lega.

Ad ogni modo, una rapida ricerca su google dovrebbe dare i suoi frutti , prova magari a cambiare le keywords
 
Il problema sta nel fatto che non conosci cosa sia un RelativeLayout quindi ti consiglio di andare sulla documentazione di Android e di studiare i diversi tipi di layout.

In questo caso ti interessa sapere che un RelativeLayout, di default, posizione gli elementi in alto a sinistra. Qualsiasi oggetto aggiungi verrà messo in quella posizione e risulterà sovrapposto agli altri.

Per allineare un oggetto figlio basandoti sui bordi del layout devi utilizzare uno o più di questi:
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true" (default)
android:layout_alignParentTop="true" (default)
android:layout_alignParentBottom="true"

Poi, per allineare gli oggetti figli del layout devi dare le coordinate tra di loro eventualmente giocando anche con i margini e padding:
android:layout_toEndOf="id_altro_oggetto_figlio"
android:layout_toStartOf="id_altro_oggetto_figlio"
android:layout_above="id_altro_oggetto_figlio"
android:layout_below="id_altro_oggetto_figlio"
 
Ultima modifica:
Il problema sta nel fatto che non conosci cosa sia un RelativeLayout quindi ti consiglio di andare sulla documentazione di Android e di studiare i diversi tipi di layout.

In questo caso ti interessa sapere che un RelativeLayout, di default, posizione gli elementi in alto a sinistra. Qualsiasi oggetto aggiungi verrà messo in quella posizione e risulterà sovrapposto agli altri.

Per allineare un oggetto figlio basandoti sui bordi del layout devi utilizzare uno o più di questi:
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true" (default)
android:layout_alignParentTop="true" (default)
android:layout_alignParentBottom="true"

Poi, per allineare gli oggetti figli del layout devi dare le coordinate tra di loro eventualmente giocando anche con i margini e padding:
android:layout_toEndOf="id_altro_oggetto_figlio"
android:layout_toStartOf="id_altro_oggetto_figlio"
android:layout_above="id_altro_oggetto_figlio"
android:layout_below="id_altro_oggetto_figlio"
Disclaimer: Non ho mai usato AS ma ho esperienza con XCode e lo sviluppo di app iOS, e la dinamica credo sia simile.
Una ConstraintLayout (ipotizzo) ti permette di definire una posizione assoluta nello spazio (es: 40 pt dall'alto e 50 pt da sinistra) , una RelativeLayout (sempre ipotizzo) invece ti permette di esprimere la posizione dell'oggetto in funzione della posizione di un altro oggetto, dunque non puoi spostarla a piacimento, ma lui seguirà sempre la posizione dell'oggetto a cui si lega.

Ad ogni modo, una rapida ricerca su google dovrebbe dare i suoi frutti , prova magari a cambiare le keywords

Vi ringrazio per la risposta e andrò a fare una ricerca sui layout in questo momento. Grazie mille :D !
Messaggio unito automaticamente:

Il problema sta nel fatto che non conosci cosa sia un RelativeLayout quindi ti consiglio di andare sulla documentazione di Android e di studiare i diversi tipi di layout.

In questo caso ti interessa sapere che un RelativeLayout, di default, posizione gli elementi in alto a sinistra. Qualsiasi oggetto aggiungi verrà messo in quella posizione e risulterà sovrapposto agli altri.

Per allineare un oggetto figlio basandoti sui bordi del layout devi utilizzare uno o più di questi:
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true" (default)
android:layout_alignParentTop="true" (default)
android:layout_alignParentBottom="true"

Poi, per allineare gli oggetti figli del layout devi dare le coordinate tra di loro eventualmente giocando anche con i margini e padding:
android:layout_toEndOf="id_altro_oggetto_figlio"
android:layout_toStartOf="id_altro_oggetto_figlio"
android:layout_above="id_altro_oggetto_figlio"
android:layout_below="id_altro_oggetto_figlio"
Disclaimer: Non ho mai usato AS ma ho esperienza con XCode e lo sviluppo di app iOS, e la dinamica credo sia simile.
Una ConstraintLayout (ipotizzo) ti permette di definire una posizione assoluta nello spazio (es: 40 pt dall'alto e 50 pt da sinistra) , una RelativeLayout (sempre ipotizzo) invece ti permette di esprimere la posizione dell'oggetto in funzione della posizione di un altro oggetto, dunque non puoi spostarla a piacimento, ma lui seguirà sempre la posizione dell'oggetto a cui si lega.

Ad ogni modo, una rapida ricerca su google dovrebbe dare i suoi frutti , prova magari a cambiare le keywords

Ragazzi, volevo soltanto dirvi che ho fatto come avete detto, sono andato a vedere online i layout e ho scoperto che è come ha detto @fattidare . In pratica bisogna modificare da codice xml nel relativelayout le posizioni delle cose
Es:
Se voglio mettere spostare un po a destra il bottone dovro aggiungere dei margini a sinistra tramite margin_left oppure se voglio mettere il una textview dovrò inserire android:layout_above="@+id/bottone" e cosi via per le altre cose.
Vi ringrazio di nuovo per l'aiuto! :)
 
Stato
Discussione chiusa ad ulteriori risposte.