2013-11-09 12 views
25

Quando creo un nuovo progetto, il file Fragment_main.xml viene aggiunto alla mia cartella Layout e, a differenza di Eclipse, questo file contiene ciò che è normalmente nel file Activity_Main.xml. Perché il file Fragment_main.xml viene sempre aggiunto ai miei progetti in Android Studio e in che modo è diverso dal file "regolare" Activity_main.xml?Qual è la differenza tra i file Acitvity_Main.xml e Fragment_main.xml in Android Studio

+0

Presumibilmente, contiene il layout per un frammento. Consiglierei di leggere il codice sorgente Java generato per vedere dove si fa riferimento a questo file di layout. – CommonsWare

risposta

5

Se si sta creando un nuovo progetto e aggiunge fragment_main.xml per impostazione predefinita, per impostazione predefinita è necessario selezionare un layout. Forse un layout cercapersone/spinner?

Framment_main è uguale a activity_main. I nomi sono solo etichette stringa e non significano nulla in sé e per sé e sono semplicemente cambiati per chiarezza dall'IDE.

Leggere questo.

http://developer.android.com/guide/topics/ui/declaring-layout.html

+1

** Se stai creando un nuovo progetto e aggiunge fragment_main.xml per impostazione predefinita, devi selezionare un layout per impostazione predefinita. Forse un layout di cercapersone/spinner? ** No, non seleziono un layout per impostazione predefinita, seguo semplicemente i passaggi predefiniti di base per creare un nuovo progetto e finire con esso. –

+1

Dato che sono uguali, lavorerò solo con il file Fragment_main.xml. Ma qual è il punto di avere entrambi? (Questa è una domanda retorica :)) –

+1

Se disponi di layout diversi per parti diverse di un'app. Se non sai quali frammenti lo ignorano, per ora. Dovresti capire cosa sono i Frammenti per ottenere questo. Se questo ci ha aiutato a darci un ringraziamento. :) – bungleofsketches

1

proprio come detto in precedenza da Bytehawks.

activity_main.xml descrive Layout per FragmentActivity e fragment_main.xml è il layout per il frammento.

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); //get the activity_main.xml for layout 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 


    //code for describing layout more details, get fragment_main.xml 
    if (savedInstanceState == null) { 
     getSupportFragmentManager().beginTransaction() 
       .add(R.id.container, new PlaceholderFragment()) 
       .commit(); 
    } 
} 
/** 
* A placeholder fragment containing a simple view. 
*/ 
public static class PlaceholderFragment extends Fragment { 

    public PlaceholderFragment() { 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.fragment_main, container, false); 
     return rootView; 
    } 
} 
Problemi correlati