2015-07-02 14 views
7

è possibile spiegare per me in questo codice:L'androide: attributo name nel <fragment>

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <fragment android:name="com.example.news.ArticleListFragment" 
      android:id="@+id/list" 
      android:layout_weight="1" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" /> 
    <fragment android:name="com.example.news.ArticleReaderFragment" 
      android:id="@+id/viewer" 
      android:layout_weight="2" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" /> 
</LinearLayout> 

qual è ArticleListFragment e ArticleReaderFragmet ???

non so che si riferiscono a cosa ??? alla classe Fragment (o alla sua sottoclasse) che usa nel codice sorgente o nei file XML per il layout ???

se sono file XML dove devono essere posizionati ???

+0

http://developer.android.com/guide/components/fragments.html – CommonsWare

risposta

7

ArticleListFragment e ArticleReaderFragment sono nomi di classi contenenti codice java per questi frammenti.

Come è stato accennato prima è possibile avere il proprio frammento all'interno contenente attività, ma non è una buona pratica farlo.

Per un buon esempio, provare a creare "Attività vuota con frammento" utilizzando la procedura guidata di Android Studio. Creerà una classe di attività e una classe di frammenti insieme a 2 file XML rispettivamente per attività e frammento.

2

Si riferiscono a due sottoclasse di Fragment, una denominata ArticleReaderFragment l'altra chiamata ArticleListFragment. Il pacchetto per entrambi è lo stesso, com.example.news. Android si occuperà di istanziare sia per voi

1

I numeri ArticleListFragment e ArticleReaderFragment puntano alla classe che si trova sul percorso com/example/news/... Queste classi dovrebbero essere sottoclassi della classe Fragment.

Ciò significa che tali classi devono esistere nel codice per rendere questo esempio XML funzionante.

A mio parere questo è tutto veramente pulito spiegato il http://developer.android.com/guide/components/fragments.html#Adding

4
<fragment android:name="com.example.app.myFragment"/> 

L'attributo nome viene utilizzato per specificare la classe frammento che viene utilizzato per creare la gerarchia vista - in questo caso myFragment.java.

+0

vuol dire che devo implementare la classe myFragment in un file separato ??? non nel codice sorgente dell'attività che voglio implementare frammento per quello ??? –

+0

Puoi fare entrambe le cose, prima puoi implementare il frammento nella tua attività oppure puoi implementare una classe di frammenti extra, rimando il secondo modo, guarda questo esempio http://examples.javacodegeeks.com/android/core/app/frammento/android-frammenti-esempio / – eddykordo

Problemi correlati