Как лучше всего разделить логику программирования для разных макетов в Android?

Я использую разные макеты для разных размеров экрана и устройств. Я использую фрагменты с определенными папками макета. Концепция отличная, для планшетов и устройств с большим экраном я помещаю файл макета в раскладка -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{
//
}
5
задан Michele 30 July 2012 в 07:23
поделиться