Как иметь кнопку только для больших устройств на Android?
Я знаю, что вы можете иметь разные элементы пользовательского интерфейса, объявив разные layout
папки как layout-large
или же layout-xlarge
, Однако я не хочу обновлять два отдельных файла каждый раз, когда я изменяю интерфейс моих приложений.
Есть ли другой способ иметь кнопку, которая имеет только visibility="gone"
на маленьких экранах и нормальная видимость на больших экранах?
2 ответа
Я разделил кнопку на 2 файла XML - один в layout-large
который имеет visibility="visible"
и один в layout
который имеет visibility="gone"
, а затем включите кнопку в моем файле layout/home.xml. Это сработало.
Вы можете разделить его на два файла макета XML, но тогда вам придется поддерживать оба. Вы можете абстрагироваться, имея один файл макета, а затем назначить кнопке стиль, определенный для обоих планшетов, а не для.
Я бы установил его на УХОД и изменил в коде. Таким образом, у вас нет двух файлов макета.
Однако я бы не стал использовать метод Блумера getConfiguration().screenLayout
, Ковши больше не являются лучшим способом обработки экрана разных размеров. Дайан Хэкборн объясняет почему в посте, но все сводится к следующему:
Основываясь на опыте разработчиков, мы не убеждены, что этот ограниченный набор блоков размера экрана дает разработчикам все необходимое для адаптации к растущему разнообразию форм и размеров Android-устройств. Основная проблема заключается в том, что границы между сегментами могут не всегда соответствовать ни устройствам, доступным для потребителей, ни конкретным потребностям приложений.
Вместо этого вы должны использовать их новые числовые значения - примерно sw600dp
для 7"планшетов и sw720dp
для 10":
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mylayout);
if (getResources().getBoolean(R.bool.sw600dp)) {
((Buton)findViewById(R.id.mybutton)).setVisibility(VISIBLE);
}
}