Если у вас есть два файла макета:
res/layout/
activity_main.xml
res/layout-sw600dp/
activity_main.xml
И у вас есть действие, которое вызывает setContentView(R.layout.activity_main)
, вам больше ничего не нужно делать: первая версия будет загружена на телефоны, асекунда будет загружена на планшеты.
Если у каждого файла макета есть представления с одинаковыми идентификаторами (возможно, они просто расположены или имеют разный размер), то вы можете просто выполнить любую логику, какую захотите, и она будет работать с обоими.
Обычно, однако, файл планшета будет включать в себя представления, которых нет в версии телефона.В этом случае вам следует проверить, существуют ли эти представления, прежде чем пытаться их использовать.Представьте, что версия планшета имеет вид android:id="@+id/right_panel"
, а версия телефона - нет.Вы можете написать:
View rightPanel = findViewById(R.id.right_panel);
if (rightPanel != null) {
// do something for tablets
}