2012-02-26 23 views
16

Estoy tratando de definir el diseño de un fragmento en XML de la misma manera que definí el diseño de mi vista.¿Cómo puedo definir el diseño de un fragmento desde XML?

¿Esto es posible? Intenté varias cosas, pero ninguna de ellas parece funcionar.

Mi diseño de la actividad se ve de la siguiente manera (main.xml):

<?xml version="1.0" encoding="utf-8"?> 
<ListView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 
    <fragment 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:name="full.lommeregner.Lommeregnerrv2Activity" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/lommeregnerv2"> 
    </fragment> 

</ListView> 

Ahora, ya que no soy un gran fan de la generación de diseños a través de código Java prima, he intentado definir mi fragmento de la siguiente manera (fragment_lommeregner .xml):

<fragment 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:name="full.lommeregner.Lommeregnerrv2Activity" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/lommeregnerv2"> 
     <!-- my content was located here (some textviews, buttons and so on). --> 
    </fragment> 

¿Estoy haciendo algo mal? ¿Cómo puedo definir el diseño de un fragmento a través de XML?

Respuesta

15

Un fragmento funciona de forma muy similar a una actividad, ya que necesita un archivo de clase Java para ir con él. no se puede crear un Fragmento simplemente mediante la creación de un diseño de fragmento - que necesita una clase para el fragmento:

  1. Crear un XML disposición y una subclase de actividad para su actividad
  2. Crear un XML disposición y una subclase Fragmento para su fragmento
  3. lazo los dos juntos en el diseño XML Actividad (o usando FragmentTransaction si quiere hacerlo en código Java)

Si aún no lo ha hecho todavía, leer, releer y digerir todo lo en esta página: https://developer.android.com/guide/components/fragments.html

Hay mucho allí, pero los fragmentos son una parte esencial de las aplicaciones de Android ahora, por lo que es obligatorio leer. La buena noticia es que lo básico de los fragmentos es bastante simple.

+1

Ellos no son estrictamente necesarios, pero harán su vida más fácil en muchos casos. – adamp

+0

el ejemplo de Eclipse que se genera automáticamente utiliza FragmentTransactions, creo ... la vista se genera mediante una clase de fragmento estático y se devuelve desde una llamada funcional. Actualmente estoy trabajando en cómo agregar mis propias pestañas. – anon58192932

+0

¿Cómo especifica una instancia de la clase 'Fragment' qué archivo XML contiene su diseño? 'Activity' tiene' setContentView (R.layout.my_activity_layout) ', que se puede invocar durante' onCreate() '. ¿Hay un análogo para los fragmentos? – dinosaur

10

Basta con añadir en su etiqueta <fragment> como propiedad:

tools:layout="@layout/your_layout_xml" 

Y en su main.xml (o <fragment> contenedor de etiqueta) en su contenedor principal (en este caso ListView):

xmlns:tools="http://schemas.android.com/tools" 
Cuestiones relacionadas