17

Supongamos que tengo varios fragmentos:fragmento en la disposición

public class FirstFragment extends Fragment { ... } 

public class SecondFragment extends Fragment { ... } 

public class ThirdFragment extends Fragment { ... } 

también tengo un principal actividad, su contenido es (main.xml):

<LinearLayout ...> 

    <!-- How to have a fragment placehold without specify which fragment show here? --> 
    <fragment> 

</LinearLayout> 

Mi pregunta es, en encima del archivo de diseño, ¿cómo puedo definir un fragmento de marcador de posición sin especificar qué fragmento se muestra aquí, y luego en Mi actividad código de Java, inflar un fragmento adecuado para el marcador de posición?

¿Es posible y cómo hacerlo?

Respuesta

31

Es posible. En su main.xml, defina un marcador de posición para el fragmento, lo llamaremos "fragment_placeholder":

<LinearLayout ...> 
<FrameLayout android:id="@+id/fragment_placeholder" android:layout_weight="1" 
     android:layout_width="0px" 
     android:layout_height="match_parent" /> 
</LinearLayout> 

En su actividad, siempre que lo desee para cargar el fragmento:

YourFragment fragment = new YourFragment(); 
FragmentTransaction ft = getFragmentManager().beginTransaction(); 
ft.replace(R.id.fragment_placeholder, fragment); 
ft.commit(); 
+1

ft.replace (...) debería cambiarse a ft.add (...) en mi caso. –

+0

sí, y android: layout_width debe establecerse en wrap_content – Markus

+0

Consulte esto para obtener más información: http://developer.android.com/training/basics/fragments/fragment-ui.html – Hardy