Autore Topic: Modificare dinamicamente la posizione delle textView in RelativeLayout  (Letto 1255 volte)

Offline enzoses

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Mac OS X
Ciao a tutti! Quello che vorrei fare è mantenere sempre lo stesso spazio tra la riga precedente e quella successiva, usando il RelativeLayout
Mi spiego. Una riga della mia schermata è composta da

[Etichetta:] + [Campo che si riempie con del testo di dimensione variabile]

quindi può succedere di avere il secondo campo di dimensione una riga, due righe, tre righe ecc, non lo so a priori.
Su iOS (scusate se faccio questo esempio ma lì sono più pratico :P), setto la posizione del componente della riga successiva in base al contenuto della textView che può variare di dimensione, in questo modo la distanza tra le varie righe resta invariata.

C'è un sistema simile in Android?

Allego due immagini che riportano la situazione attuale



Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Modificare dinamicamente la posizione delle textView in RelativeLayout
« Risposta #1 il: 21 Marzo 2013, 14:11:51 CET »
0
c'è l'attributo @below per i relative layout RelativeLayout | Android Developers
ovviamente va messo sugli elementi testuali e non sulle etichette 'Formula' ecc
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline enzoses

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Mac OS X
Re:Modificare dinamicamente la posizione delle textView in RelativeLayout
« Risposta #2 il: 21 Marzo 2013, 14:14:23 CET »
0
c'è l'attributo @below per i relative layout RelativeLayout | Android Developers
ovviamente va messo sugli elementi testuali e non sulle etichette 'Formula' ecc

Quindi dovrei impostare ogni elemento testuale @below l'elemento testuale della riga precedente? E l'etichetta di fianco lo segue? 

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Modificare dinamicamente la posizione delle textView in RelativeLayout
« Risposta #3 il: 21 Marzo 2013, 14:17:42 CET »
0
Quindi dovrei impostare ogni elemento testuale @below l'elemento testuale della riga precedente? E l'etichetta di fianco lo segue?
si se all'etichetta ci metti align_top (o qualcosa del genere non ricordo la stringa esatta) dandogli come id quello della textview a fianco

guardati bene gli attributi che si possono dare usando l'interfaccia in eclipse,
layout_Align_top baseline, ecc, ce ne sono tanti attributi
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline enzoses

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Mac OS X
Re:Modificare dinamicamente la posizione delle textView in RelativeLayout
« Risposta #4 il: 21 Marzo 2013, 14:19:49 CET »
0
si se all'etichetta ci metti align_top (o qualcosa del genere non ricordo la stringa esatta) dandogli come id quello della textview a fianco

guardati bene gli attributi che si possono dare usando l'interfaccia in eclipse,
layout_Align_top baseline, ecc, ce ne sono tanti attributi

Gli attributi li ho visti, è che non li capisco molto bene. Comunque provo subito!

Post unito: 21 Marzo 2013, 15:50:31 CET
Ho modificato lo schema della pagina in:

[etichetta:]
[testo]

e funziona bene tranne nel caso in cui la casella [testo] è vuota: in questo caso resta comunque una riga di spazio, la successiva non sale.
Le righe [testo] sono tutte impostate con width: fill_parent e Height: wrap_content

è normale?

Post unito: 21 Marzo 2013, 16:27:04 CET
Risolto con un piccolo stratagemma: controllo la lunghezza della stringa da mostrare e se è = 0 allora stampo "Dato assente", così ogni riga è sempre riempita
« Ultima modifica: 21 Marzo 2013, 16:27:04 CET da enzoses, Reason: Merged DoublePost »

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Modificare dinamicamente la posizione delle textView in RelativeLayout
« Risposta #5 il: 21 Marzo 2013, 21:40:46 CET »
0
Gli attributi li ho visti, è che non li capisco molto bene. Comunque provo subito!

Post unito: 21 Marzo 2013, 15:50:31 CET
Ho modificato lo schema della pagina in:

[etichetta:]
[testo]

e funziona bene tranne nel caso in cui la casella [testo] è vuota: in questo caso resta comunque una riga di spazio, la successiva non sale.
Le righe [testo] sono tutte impostate con width: fill_parent e Height: wrap_content

è normale?

Post unito: 21 Marzo 2013, 16:27:04 CET
Risolto con un piccolo stratagemma: controllo la lunghezza della stringa da mostrare e se è = 0 allora stampo "Dato assente", così ogni riga è sempre riempita
esiste anche il set visibility sulle view per nasconderle, cioè se fai textview.setVisibility(View.Gone) nascondi completamente la view

Inviato dal mio Nexus 7 con Tapatalk 2
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline enzoses

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Mac OS X
Re:Modificare dinamicamente la posizione delle textView in RelativeLayout
« Risposta #6 il: 21 Marzo 2013, 22:08:28 CET »
0
esiste anche il set visibility sulle view per nasconderle, cioè se fai textview.setVisibility(View.Gone) nascondi completamente la view

Inviato dal mio Nexus 7 con Tapatalk 2

Ma se la nascondo il riferimento della riga di sotto si perde?