Autore Topic: differenza tra layout_alignParentRight="true" e gravity="right"  (Letto 661 volte)

Offline mmlink

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    gt-s7500
  • Sistema operativo:
    windows 8
differenza tra layout_alignParentRight="true" e gravity="right"
« il: 12 Gennaio 2014, 14:36:48 CET »
0
Mettendo in pratica un esempio di un noto libro
mi è nata una curiosità... qual è la differenza tra

android:layout_alignParentRight="true" e android:gravity="right" ?

ho notato che se elimino uno  soltanto di questi due attributi la TextView 'levelTextView' non si sposta in fondo alla destra del layout come dovrebbe

provo a farvi un disegno

CON
android:layout_alignParentRight="true" e android:gravity="true"  tutto ok

_________________relativeLayout________________
                                                                                                      |
highScoreTextView----------------------------levelTextView  |
                                                                                                      |
_____________________________ _____________   |


SENZA
android:layout_alignParentRight="true" o android:gravity="true"  succede questo

_________________relativeLayout________________
                                                                                                      |
highScoreTextView---levelTextView                                   |
                                                                                                      |
___________________________________________  |

ovviamente levelTextView resta affiancata  alla textview 'highScoreTextView' in virtù dell'attributo android:layout_toRightOf="@id/highScoreTextView"

Vi posto il main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/relativeLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/white" >

    <TextView
        android:id="@+id/highScoreTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="10dp"
        android:text="@string/high_score"
        android:textColor="@android:color/black"
        android:textSize="25sp" />

    <TextView
        android:id="@+id/levelTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:gravity="right"
        android:layout_marginRight="10dp"
        android:layout_marginTop="10dp"
        android:layout_toRightOf="@id/highScoreTextView"
        android:text="@string/level"
        android:textColor="@android:color/black"
        android:textSize="25sp" />

    <TextView
        android:id="@+id/scoreTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/highScoreTextView"
        android:layout_marginLeft="10dp"
        android:text="@string/score"
        android:textSize="25sp" />

    <LinearLayout
        android:id="@+id/lifeLinearLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_margin="10dp"
        android:orientation="horizontal">

    </LinearLayout>

</RelativeLayout>

grazie!

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:differenza tra layout_alignParentRight="true" e gravity="right"
« Risposta #1 il: 12 Gennaio 2014, 14:55:42 CET »
0
I due attributi che citi agiscono su due aspetti diversi della View a cui sono associati:

Gli attributi android:layout_xxxx servono a posizionare la View dentro il suo oggetto padre. E sinceramente non credo sia corretto metterne più di uno che definisce la posizione in orizzontale: secondo me layout_alignParentRight e layout_toRightOf secondo me ne puoi eliminare uno (anzi, credo sia il toRightOf di troppo a crearti l'anomalia di cui parli).

L'attributo android:gravity invece serve a posizionare il contenuto interno alla View. Ma non ha praticamente senso se la View ha un wrap_content.


Io metterei solo layout_alignParentRight per levelTextView e solo layout_alignParentLeft per highScoreTextView, nessun gravity nessun toRightOf, entrambi wrap_content.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline mmlink

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    gt-s7500
  • Sistema operativo:
    windows 8
Sei stato chiarissimo e la tua risposta illuminante. Ti ringrazio!

Inviato dal mio GT-S7500 con Tapatalk 2