Я использую разные макеты для разных размеров экрана и устройств. Я использую фрагменты с определенными папками макета. Концепция отличная, для планшетов и устройств с большим экраном я помещаю файл макета в раскладка -sw600dp и Android обеспечивают правильную раскладку на разных устройствах.
Что меня смущает, так это :Как я могу узнать, какой макет используется в моем коде. Моим фрагментам нужны немного разные коды для разных макетов.
В общем, как лучше всего разделить логику программирования пользовательского макета внутри моих фрагментов/действий?
Мой подход сейчас немного хакерский и не синхронизирован с разными папками макета.
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;
}
а потом
if(isTabletDevice()) {
//findViewById(R.id.onlyInTabletLayoutButton);
}else{
//
}