Spanish ¿Gestión de múltiples layouts?

fabianr

Member
Licensed User
Longtime User
Hola compañeros,
Creo que aún no tengo conceptos muy claros del entorno, pero bueno, les comento lo que deseo hacer: La idea es crear una aplicación en la que hay varios Layouts con distintos contenidos y que por ejemplo desde el menú principal yo puedo llamar las demás Layouts sin ninguna especie de problema.

Esto lo digo porque si creo un simple botón y a este le agrego una función para cargar uno de estos layouts, el mismo se agrega dentro del actual layout.

¿Como puedo hacerlo entonces?
Agradezco su ayuda :)
 

droman

Member
Licensed User
Longtime User
Es un problema de concepto.

No deberías hacer layauts para cada parte de la aplicación, lo que debes hacer son Activity, en Visual Basic, si lo conoces, las Activity se llaman FORMS.

Igual que en Vb creamos varios FORMS para cada ventana de la aplicación, lo correcto aquí, es diseñar un Activity nuevo por cada parte del programa.

Puedes llamar a un activity desde el evento click de un botón:

B4X:
Sub Btn_Click
   StartActivity(ejemplo)
End Sub

Donde "ejemplo" es el nombre del fichero que hemos creado al añadir un nuevo Activity.

No me exlico muy bien, pero espero haberte ayudado.
 

Thord

Member
Licensed User
Longtime User
Hey a mi me ha venido muy bien la explicacion sobre las activitys y su equivalencia con los forms. Yo por ejemplo pensaba en layauts como forms. Aunque aun no me habia puesto ha hacer pruebas con multiforms por decirlo de alguna manera.
La duda que me ha surgido en torno ha este tema seria que en que casos se usaria mas de un layaut
 

droman

Member
Licensed User
Longtime User
Pues así de primeras, la manera habitual de utilizar más de un Layout es por ejemplo si tu aplicación soporta modo vertical y apaisado.

El activity sigue siendo el mismo, pero el layaut cambia.

Traducido a VB... si giras el telefono, sigues usando el mismo form (activity) pero cambias los elementos de sitio (layout) con lo que te evitas programar ni una sola linea, puesto que todo funciona igual... pero en distinto sitio.

Amplio: Otra forma muy común de usar varios layauts es cuando adaptamos nuestra aplicación para que funcione en pantallas diferentes, es decir, un fallo muy común es pensar que todos tienen mi Samsung Galaxy S y diseñar las pantallas para mi terminal... todo queda perfecto. Peeeeeeeeeero, ahora llega un pobre chavalito que tiene un HTC Wildfire y descubre que tu pedazo de aplicación es una mieeeerda como un piano, por que NO LE ENTRA NADA EN PANTALLA!!!

Solución, Layout para 480x800x1.5 para Galaxy y similares y Layout para 240x320x1 del Wildfire o similares, con lo que ese chavalito que antes no veia nada, ahora está flipando con tu aplicación :D
 
Last edited:

Thord

Member
Licensed User
Longtime User
Oido cocina por mi parte ya me quedo claro las diferencias! y los diferentes usos. perfecto
 
Como podía llamar a otro layout desde el botón menú del teléfono, he probado esto
Sub Activity_KeyPress (KeyCode As Int) As Boolean
If KeyCode = KeyCodes.KEYCODE_MENU Then StartActivity("Creditos")
End Sub

pero me da error.
 

jota

Active Member
Licensed User
Longtime User
El codigo es correcto, mira que exista la actividad Creditos o que no este mal escrita.
 

Espinosa4

Active Member
Licensed User
Longtime User
Hola dudas sobre este tema,

Cuando llamas a un activity luego cargo siempre un layout que asocio a ese activity. Si no es así, cómo con un mismo layout puedo insertar tantos botones, imágenes, spinners etc... Sin liarme? Creía que la facilidad del layout era la de hacer una pantalla o form como en vb de una forma visual.

Saludos
 

thader2012

Member
Licensed User
Longtime User
Hola Espinosa4

Tu en un fichero vb como es el Main, principal, tu puedes cargar todos los layouts que quieras usando loadLayout o usar startActivity. El primer caso como cada elemento del layout tiene su propio name no te lias. Y en el segundo caso tienes otro fichero vb distinto del Main que es el principal.


Un saludo
 

Espinosa4

Active Member
Licensed User
Longtime User
Muchas gracias thader2012!
Creo que entiendo lo que quieres decir.
Haré en casa algunas pruebas he intentaré ver ejemplos a parte claro de leerme la documentación que lo hice pero con muchas lagunas.

Saludos
 
Top