Autore Topic: Il comando include  (Letto 518 volte)

Offline andream1977

  • Utente normale
  • ***
  • Post: 260
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    windows xp
Il comando include
« il: 24 Settembre 2010, 11:24:57 CEST »
0
Ho un relative layout main.xml che include un altro pezzo di layout:

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:background="#ffffff"
   >
   
<TextView  
   android:id="@+id/testo1"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"    
   android:text="Prova 1"
   android:textColor="@color/testo_header"
   android:textStyle="bold"
   android:gravity="center"
   android:background="@drawable/header"
   />

   
   
     <include android:layout_width="fill_parent" layout="@layout/gps" />
</RelativeLayout>

gps.xml è così definito:


Codice (XML): [Seleziona]
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent" android:layout_height="wrap_content"
         >



 <TextView  
   android:id="@+id/testo2"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:text="Prova 2"
   android:textColor="@color/testo"
   android:layout_below="@+id/testo1"
   android:layout_marginLeft="15dip"
   android:layout_marginTop="15dip"
    /> 

       
</RelativeLayout>

Quando eseguo l'emulatore, main_text_view_2 compare erroneamente in alto a sinistra, se invece elimino l'include e scrivo il componente con testo2 direttamente in main.xml, testo2 si vede correttamente sotto testo1, cosa sbaglio?

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:Il comando include
« Risposta #1 il: 24 Settembre 2010, 11:52:19 CEST »
0
Avendo letto la domanda, così su due piedi proverei a togliere android:layout_width="fill_parent" da <include

Lo dico solo per logica, essendo l'unica cosa "in più" tra i due casi. Magari noti altre differenze che ti suggeriscono qualcosa.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline andream1977

  • Utente normale
  • ***
  • Post: 260
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    windows xp
Re:Il comando include
« Risposta #2 il: 24 Settembre 2010, 12:46:44 CEST »
0
anche scrivendo

<include layout="@layout/gps"  />

il risultato non cambia

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:Il comando include
« Risposta #3 il: 24 Settembre 2010, 13:33:39 CEST »
0
anche scrivendo

<include layout="@layout/gps"  />

il risultato non cambia

Altro possibile tentativo, prova a fare il contrario e aggiungere questa volta anche l'attributo per height:

Codice (XML): [Seleziona]
<include android:layout_height="wrap_content" android:layout_width="fill_parent" layout="@layout/gps" />
Scusa ancora per le idee buttate giù in modo grezzo e non testato, ma sono a lavoro non ho niente per provare.  :-)
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:Il comando include
« Risposta #4 il: 24 Settembre 2010, 13:42:40 CEST »
0
Ma a cosa serve l'include? non l'ho mai usato o.O
Postate il LogCat LogCat LogCat LogCat LogCat

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Il comando include
« Risposta #5 il: 24 Settembre 2010, 13:50:10 CEST »
0
Ma a cosa serve l'include? non l'ho mai usato o.O

A includere un layout in un altro.

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:Il comando include
« Risposta #6 il: 24 Settembre 2010, 13:56:53 CEST »
0
Ma allora essendo in un RelativeLayout non dovresti dirglielo che l'include deve stare layout_below="@id/TextViewDiSopra" ?
Postate il LogCat LogCat LogCat LogCat LogCat

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:Il comando include
« Risposta #7 il: 24 Settembre 2010, 15:07:29 CEST »
+1
Sembrano esserci problemi nell'utilizzo di include nei RelativeLayout, provate a dare uno sgaurdo qui (io vado di fretta e non riesco): How to get RelativeLayout working with merge and include? - Stack Overflow
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline andream1977

  • Utente normale
  • ***
  • Post: 260
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    windows xp
Re:Il comando include
« Risposta #8 il: 24 Settembre 2010, 17:15:33 CEST »
+1
Grazie al link di jd ecco la soluzione

Codice (XML): [Seleziona]
<LinearLayout
        android:layout_below="@+id/main_text_view_3"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent">
        <include
                android:id="@+id/xxx"
                layout="@layout/gps" />
</LinearLayout>

Bisogna mettere l'include dentro un linear layout e specificare la proprietà layout_below linear layout
« Ultima modifica: 24 Settembre 2010, 17:17:26 CEST da JD »