После завершения большого количества приложений для Android 2.x я теперь начинаю с фрагментов на устройствах 2.x и 3.x, используя пакет совместимости.
До сих пор все мои макеты были частью различных res /Папки layoutxxx и не нуждались в каких-либо ручных изменениях внутри кода src.
При рассмотрении примеров фрагмента, подобных показанному ниже, всегда есть выбор между различными возможностями устройства в коде src.Это действительно требуется?Я не понимаю, почему новый дизайн фрагмента требует динамических изменений для разных устройств / макетов / ориентаций.
Поэтому мой вопрос: я хотел бы, как обычно, поместить все разные макеты в их папки res / layout ипусть Android сделает все остальное - даже 2-панельные (на планшетах) или 1-панельные (на телефонах) дисплеи.Есть ли какая-то обертка для этого?
//
// Helper function to show the details of a selected item, either by
// displaying a fragment in-place in the current UI, or starting a
// whole new activity in which it is displayed.
//
void showDetails(int index) {
mCurCheckPosition = index;
if (mDualPane) {
// We can display everything in-place with fragments, so update
// the list to highlight the selected item and show the data.
getListView().setItemChecked(index, true);
// Check what fragment is currently shown, replace if needed.
DetailsFragment details = (DetailsFragment)
getFragmentManager().findFragmentById(R.id.details);
if (details == null || details.getShownIndex() != index) {
// Make new fragment to show this selection.
details = DetailsFragment.newInstance(index);
// Execute a transaction, replacing any existing fragment
// with this one inside the frame.
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.details, details);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.commit();
}
} else {
// Otherwise we need to launch a new activity to display
// the dialog fragment with selected text.
Intent intent = new Intent();
intent.setClass(getActivity(), DetailsActivity.class);
intent.putExtra("index", index);
startActivity(intent);
}
}