Używam różnych układów dla różnych ekranizatów i urządzeń. Używam Fragmentów z określonymi Folderami Układu. Koncepcja jest świetna, jeśli chodzi o tablety i urządzenia z dużym ekranem, umieszczam plik układu w postaci layout-sw600dp, a system Android umożliwia dostarczenie odpowiedniego układu na różnych urządzeniach.Jaki jest najlepszy sposób oddzielenia różnych logik programowania dla różnych układów w systemie Android?
Co mam do mnie: Jak mogę się dowiedzieć, jaki układ jest używany w moim Kodzie. Moje fragmenty wymagają nieco innych kodów dla różnych układów.
W ogóle, jaka jest najlepsza praktyka oddzielania logiki programowania układu niestandardowego w obrębie moich fragmentów/działań?
Moje podejście jest teraz trochę hacky i nie jest zsynchronizowane z różnymi folderami układu.
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;
}
a następnie
if(isTabletDevice()) {
//findViewById(R.id.onlyInTabletLayoutButton);
}else{
//
}