Autore Topic: Nested weights are bad for performance  (Letto 372 volte)

Offline encol

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Nested weights are bad for performance
« il: 09 Marzo 2015, 21:18:28 CET »
0
Ciao a tutti,
ho un layout diviso in due parti, di cui la prima parte deve essere divisa in ulteriori 3 parti con proporzioni 1:2:1

Android studio mi da il warning in oggetto. C'è qualche modo migliore per realizzare questo layout senza farlo arrabbiare?  :D

questo è quello attuale:
Codice: [Seleziona]
<LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1">
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:gravity="top"
            android:orientation="vertical">
            ...
        </LinearLayout>
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="2"
            android:gravity="center_vertical"
            android:orientation="vertical">
            ...
        </LinearLayout>
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:orientation="vertical"
            android:gravity="bottom">
            ...
        </LinearLayout>
</LinearLayout>
<LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        ...
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/btnAvviaPartita"
            android:id="@+id/btnProsegui"
            android:layout_gravity="end"/>
</LinearLayout>

Offline tonno16

  • Utente storico
  • *****
  • Post: 1228
  • Respect: +59
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Nested weights are bad for performance
« Risposta #1 il: 09 Marzo 2015, 23:57:39 CET »
0
Si riferisce al Weight che hai messo nel primo Lineare.

Ora, prendo per buono che questo è una parte del file perché ovviamente deve avere un solo genitore il file.
siccome usi weight 1 nel primo layout, noto che nel secondo liner (quello in fondo a tutto) non uso nessun weight. Quindi. 1 2 1 messo nei primi 3 figli è giusto. Ma il Weight messo nel primo padre non serve, perche come detto dovresti settarlo anche nell'ultimo linear. Penso quindi che puoi toglierlo.

Anche se android studio ti segnala tale warning, puoi comunque fregartene. Se è un layout statico stiamo parlando di prestazione relative. Ci metterà 0.010 secondi invece che 0.009. Non noti nessun lag usando l'applicazione. Sta a te decidere ;)

Offline encol

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Nested weights are bad for performance
« Risposta #2 il: 10 Marzo 2015, 00:48:54 CET »
0
grazie della risposta.

si i due linear sono all'ìnterno di un altro linear che è l'elemento radice.
E' vero, le prestazioni non decadranno molto, ma era solo per capire (sto imparando ;) )

Però se tolgo il weight 1 al primo padre non ottengo la stessa cosa: il mio obiettivo è avere una zona in basso (quella con il Button) la cui altezza è determinata dal button, e una zona in alto che occupa la parte restante dello schermo. Quest'ultima deve essere poi divisa 1:2:1

Offline tonno16

  • Utente storico
  • *****
  • Post: 1228
  • Respect: +59
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Nested weights are bad for performance
« Risposta #3 il: 10 Marzo 2015, 00:53:19 CET »
0
Adotta il relative layout allora. Puoi fare in modo si dire al layout A di disporsi esattamente sopra il layout B. B sarebbe il tuo bottone in questo caso.
Sperimenta

Offline encol

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Nested weights are bad for performance
« Risposta #4 il: 10 Marzo 2015, 00:57:52 CET »
0
ok, proverò come dici.
adesso no però,  mi sa che è ora di andare a nanna  ;-)

Post unito: 10 Marzo 2015, 10:16:35 CET
ho provato ma non riesco a capire cosa mettere nel layout_height del Layout A, in modo che il layout A occupi la restante parte dello schermo: se metto fill_parent o match_parent mi occupa tutto (il layout B sparisce), mentre se metto wrap_content mi occupa solo in base al contenuto
« Ultima modifica: 10 Marzo 2015, 10:16:35 CET da encol, Reason: Merged DoublePost »