Как иметь кнопку только для больших устройств на 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);
    }
}
Другие вопросы по тегам