Fragment.onCreateView tiene un contenedor nulo
Lo siguiente se ejecuta en un Android 1.6, así que estoy usando el paquete de compatibilidad para fragmentos. En el siguienteTestFragment
es una clase anidada estática:
<code>public class FragmentTestActivity extends FragmentActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public static class TestFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { TextView result = new TextView(getActivity()); result.setText("Hello TestFragment"); return result; } } </code>
}
El archivo main.xml:
<code><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <fragment class="com.test.FragmentTestActivity$TestFragment" android:id="@+id/test" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </FrameLayout> </code>
Lo extraño es que el parámetro contenedor enonCreateView
esnull
.
Ahora, si agrego el fragmento programáticamente como tal (solo cambia elonCreate
Método de la Actividad) el contenedor ya no es nulo. ¿Por qué?
<code>public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Fragment frag = new TestFragment(); getSupportFragmentManager().beginTransaction().add(android.R.id.content, frag).commit(); } </code>