¿Hay alguna manera de llamar a setContentView (id) varias veces con una identificación diferente durante una actividad para representar diferentes vistas o tengo que iniciar una nueva actividad?Llamando a setContentView() varias veces
Respuesta
Per de Austyn, que logró localizar alguna orientación sobre cómo utilizar ViewFlipper de lograr esto en otro post (véase la respuesta arriba la marca de verificación here.)
Si no desea utilizar ViewFlipper, me encontrado un buen ejemplo de cómo cambiar entre diseños en la misma vista here:
XML:
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<ImageView
android:src="@drawable/icon"
android:scaleType="fitCenter"
android:layout_height="fill_parent"
android:layout_width="fill_parent"/>
<TextView
android:text="Learn-Android.com"
android:textSize="24sp"
android:textColor="#000000"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:gravity="center"/>
</FrameLayout>
Código:
private void SwitchLayout2() {
RelativeLayout Layout1 = (RelativeLayout)findViewById(R.id.layout1);
RelativeLayout Layout2 = (RelativeLayout)findViewById(R.id.layout2);
// Enable Layout 2 and Disable Layout 1
Layout1 .setVisibility(View.GONE);
Layout2.setVisibility(View.VISIBLE);
}
private void SwitchLayout1() {
RelativeLayout Layout1 = (RelativeLayout)findViewById(R.id.layout1);
RelativeLayout Layout2 = (RelativeLayout)findViewById(R.id.layout2);
// Enable Layout 1 & Disable Layout2
Layout1.setVisibility(View.VISIBLE);
Layout2.setVisibility(View.GONE);
}
No, no puede llamarlo varias veces fácilmente. Debe eliminar por completo todas las vistas y luego inflar el nuevo diseño, o usar un ViewFlipper
(o FrameLayout
) para cambiar entre diferentes vistas.
En una nota lateral, esta pregunta se ha hecho antes, aunque no pude encontrarla de inmediato. comentario
Usted puede tratar esto de su actividad:
getWindow().addContentView(View, ViewGroup.LayoutParams);
Los dos vistas de contenido será una encima de la otra. Pero, no hay una manera directa de eliminar una determinada vista agregada de esta manera.
También tenga en cuenta que al llamar al setContentView
después de la última llamada, se eliminarán todas las vistas anteriores de contenido agregado.
- 1. jQuery obligar a disparar varias veces?
- 2. MYSQL unirse a las tablas varias veces
- 3. ejecutar SwingWorker varias veces
- 4. lectura IEnumerable varias veces
- 5. ABAddressBookRegisterExternalChangeCallback llama varias veces
- 6. textFieldShouldEndEditing llamado varias veces
- 7. Page_ClientValidate valida varias veces.
- 8. Módulo importado varias veces
- 9. JQueryUI llamando a .accordion dos veces en una sola ID
- 10. PHP proc_open abre varias veces
- 11. La ranura se está llamando varias veces cada vez que se emite una señal
- 12. EKEventStoreChangedNotification se llama varias veces
- 13. Automapper - CreateMap llamado varias veces
- 14. NSNotification se plantea varias veces
- 15. Usar ver para inflar varias veces
- 16. Android setContentView operación
- 17. jquery .click llamado varias veces
- 18. C++ - varias veces usando istringstream
- 19. Como leer request.getInputStream() varias veces
- 20. Android ProgressDialog con setContentView
- 21. Llamar a un getter varias veces o llamar una vez y asignar a una variable?
- 22. ¿Es normal que se llame varias veces al método "activity.onCreate()"
- 23. Efectos secundarios de llamar a Assembly.Load varias veces
- 24. unirse a una mesa varias veces para otras tablas
- 25. .onload llama varias veces a partir de extensión para Firefox
- 26. Unir a la izquierda la misma mesa varias veces
- 27. ¿Puedo agregar el mismo DataRow a una DataTable varias veces?
- 28. removeAllViews y setContentView no funciona
- 29. cómo combinar varias veces sucursales en Mercurial
- 30. ¿Cómo puedo reutilizar un bloque varias veces?
Deberías estar usando un 'ViewFlipper' para hacer esto y no solo cambiando la visibilidad en cada' View' –
@AustynMahoney, sería genial saber la razón por la que es mejor usar un ViewFlipper en lugar de glenviewjeff's método descrito. – user438293456
¿Por qué querría reinventar la rueda cuando Android ya proporciona una forma muy sencilla de lograr esto exactamente? ¿Qué sucede cuando quieres expandir esto a 3 diseños, o quizás 18? Si usaste 'ViewFlipper' es muy simple, si no has tenido buena suerte manteniendo esa base de código. –