uso diferentes diseños para diferentes tamaños de pantalla y dispositivos. Yo uso Fragmentos con Carpetas de Diseño específicas. El concepto es genial, para tabletas y dispositivos con una pantalla grande coloco un archivo de diseño en layout-sw600dp y Android se las arregla para entregar el diseño correcto en los diferentes dispositivos.¿Cuál es la mejor manera de separar diferentes lógicas de programación para diferentes diseños en Android?
Lo que me molesta es: ¿Cómo puedo saber qué diseño se usa dentro de mi Código? My Fragments necesita códigos ligeramente diferentes para los diferentes diseños.
En general, ¿cuál es la mejor práctica para separar la lógica de programación de diseño personalizado dentro de mis fragmentos/actividades?
Mi enfoque ahora es bastante hacky y no está sincronizado con las diferentes carpetas de diseño.
private boolean isTabletDevice() {
if (android.os.Build.VERSION.SDK_INT >= 11) { // honeycomb
// test screen size, use reflection because isLayoutSizeAtLeast is
// only available since 11
Configuration con = getResources().getConfiguration();
try {
Method mIsLayoutSizeAtLeast = con.getClass().getMethod("isLayoutSizeAtLeast", int.class);
Boolean r = (Boolean) mIsLayoutSizeAtLeast.invoke(con, 0x00000004); // Configuration.SCREENLAYOUT_SIZE_XLARGE
return r;
} catch (Exception x) {
x.printStackTrace();
return false;
}
}
return false;
}
y luego
if(isTabletDevice()) {
//findViewById(R.id.onlyInTabletLayoutButton);
}else{
//
}