Fragment.onCreateView tiene un contenedor nulo
Lo siguiente se está ejecutando en un Android 1.6 por lo que estoy utilizando el paquete de compatibilidad para los fragmentos. En el siguiente TestFragment
es una clase anidada estática:
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; } }
}
- Cómo centralizar el diseño dentro de Android Dialog?
- ¿El tamaño del texto no se cambia para los diferentes diseños de pantalla?
- Listview la misma altura que el contenido
- ¿Cómo funciona android: rotationX y android: rotationY en XML realmente funciona?
- Android: vista personalizada desde un diseño inflado
El archivo main.xml:
<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>
Lo extraño es que el parámetro container en onCreateView
es null
.
Ahora, si agrego el fragmento programatically como así (apenas cambie el método del onCreate
de la actividad) el recipiente es null más nulo. ¿Por qué?
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Fragment frag = new TestFragment(); getSupportFragmentManager().beginTransaction().add(android.R.id.content, frag).commit(); }
- Programáticamente establecer ImageButton layout_gravity
- Cómo obtener la altura en píxeles de LinearLayout con layout_weight
- Cómo poner un botón entre dos diseños
- Impedir el clic de Android ImageVIew?
- EditText sin línea en la parte inferior
- Pantalla de bienvenida de Android
- R no se puede resolver - Android, sin importar android.R; declaración
- ¿Cómo agregar un fragmento en mi actividad dinámicamente?
La documentación menciona que puede ser nula:
Public View onCreateView (Inflador LayoutInflater, contenedor ViewGroup, Bundle savedInstanceState)
[…]
Container: Si no es nulo , ésta es la vista principal a la que se debe enlazar la interfaz de usuario del fragmento. El fragmento no debe agregar la vista en sí , pero esto se puede utilizar para generar los LayoutParams de la vista.
Para ser claro: no deberías hacer nada como container.addView(...)
.
- Arrastrar y soltar con onDraglistener animar para volver a la posición original si no se deja caer en el objetivo
- Cómo agregar actividad de SDK en Qt para Android