Home Menu

Menu



Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 13/04/14, 11:51:25
Avatar de Int32
Int32 Int32 no está en línea
Usuario novato en la web
Mensajes: 6
 
Fecha de registro: abr 2014
Mensajes: 6
Modelo de smartphone: moto g
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Navigation Drawer y Fragmentos

Hola buenos días, estoy realizando el proyecto de fin de curso y quiero hacer una app que me valga tanto para móvil como tableta, mi problema surge que al implementar el navigation drawer pincho en una opcion del menú y quiero abrir un fragmentos con un listvew y otro con detalles si estoy en tableta y solo el listview si estoy en móvil, siguiendo la información de Google he hecho los diseños pero me da problema al hacer la transición de fragmentos no me carga nada.
Responder Con Cita


  #2  
Viejo 13/04/14, 12:52:50
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
Doy por supuesto que no es la primera vez que trabajas con Fragments y que sabes como se hace una transición de Fragments en un FrameLayout.

Dicho esto, el problema que tienes tú, de tener unos Fragments para móvil y otros para tablet, lo solucioné así:

Creas un Layout para móvil (normal, sin nada, simplemente carpeta "layout") y otra para tablet "layout-sw600dp" (en este caso será para tablets de 7'', pero las de 10'' también lo cogerán de ahí). En las 2 tendrás un FrameLayout llamado "listado" (por ejemplo), pero sólo en la de tablet tendrás otro llamado "detalles" (por ejemplo).

Y ya en el código lo único que tienes que hacer es comprobar si tienes disponible el FrameLayout de detalles para hacerle la transición:

if (findViewById(R.id.detalles) != null) {
//SOY TABLET
}
else {
//SOY MOVIL
}
Responder Con Cita
  #3  
Viejo 14/04/14, 23:51:01
Avatar de Int32
Int32 Int32 no está en línea
Usuario novato en la web
Mensajes: 6
 
Fecha de registro: abr 2014
Mensajes: 6
Modelo de smartphone: moto g
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Sigo teniendo problemas, tengo mi MainActivity que hereda de FragmentActivity y en las opciones del menu al hacer click hago lo siguiente:

lvdrawer.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int posicion, long id) {
Fragment fragment = null;

switch (posicion) {
case 0:
fragment = new Principal();
break;

}
FragmentManager fragmentManager = getSupportFragmentManager();

fragmentManager.beginTransaction()
.replace(R.id.content_frame, fragment)
.commit();
drawerLayout.closeDrawers();
}
});

Principal es una clase que hereda de tambien de FragmentActivity y donde compruebo si estoy en tableta o movil.

public class Principal extends FragmentActivity
implements HeadlinesFragment.OnHeadlineSelectedListener {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.news_articles);

if (findViewById(R.id.fragment_container) != null) {

if (savedInstanceState != null) {
return;
}

HeadlinesFragment firstFragment = new HeadlinesFragment();

firstFragment.setArguments(getIntent().getExtras() );

getSupportFragmentManager().beginTransaction()
.add(R.id.fragment_container, firstFragment).commit();


Tendria que hacer la comprobacion antes cuando hago el click? estoy un poco perdida.
Responder Con Cita
  #4  
Viejo 15/04/14, 11:04:53
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
Lo que no entiendo es como te compila, porque estás tratando de meter un FragmentActivity dentro de un Fragment:

fragment = new Principal();

public class Principal extends FragmentActivity

Para que funcione Principal debe ser un Fragment, no un FragmentActivity
Responder Con Cita
  #5  
Viejo 15/04/14, 15:09:20
Avatar de Int32
Int32 Int32 no está en línea
Usuario novato en la web
Mensajes: 6
 
Fecha de registro: abr 2014
Mensajes: 6
Modelo de smartphone: moto g
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
No me compila me da error...
Pero si lo pongo como Fragment como haria la comprobacion de movil.
o tablet, siguiendo la informacion de google ponia que tenia que ser un fragment activity

Pero voy a probar a ver.
Responder Con Cita
  #6  
Viejo 15/04/14, 16:19:20
Avatar de Int32
Int32 Int32 no está en línea
Usuario novato en la web
Mensajes: 6
 
Fecha de registro: abr 2014
Mensajes: 6
Modelo de smartphone: moto g
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Nada no hay manera...
Responder Con Cita
  #7  
Viejo 15/04/14, 17:19:55
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
Para que funcione Principal tiene que ser un Fragment, porque un FragmentActivity es un tipo de Activity que incorpora al FragmentManager para poder hacer las transiciones. Un Fragment no tiene nada que ver con un FragmentActivity.
Responder Con Cita
  #8  
Viejo 16/04/14, 11:11:21
Avatar de Int32
Int32 Int32 no está en línea
Usuario novato en la web
Mensajes: 6
 
Fecha de registro: abr 2014
Mensajes: 6
Modelo de smartphone: moto g
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Entiendo lo que quieres decirme y es lógico pero mi problema es que tengo un proyecto con principal que es un fragmentos acrivity, un fragmento listado y otro de detalle y me funciona bien si lo ejecuto en móvil o tabletas se ve como quiero, ahora el problema es que quiero incorporarlo al proyecto donde esta el navigation drawer es posible cargar principal? O tendría que hacerlo de otra forma?
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 18:47:36 (GMT +2)

Cookies
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007