В чем преимущество использования XML для макета? - PullRequest
4 голосов
/ 05 июля 2011

Я прошел несколько учебных пособий и т. Д. И обнаружил, что могу получить те же результаты, определяя все мои компоненты пользовательского интерфейса в коде.

Например:

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    TextView tv = new TextView(this);
    tv.setText("hello");
    LinearLayout ll = new LinearLayout(this);
    ll.addView(tv);
    setContentView(ll);
}

является эквивалентом

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
}

+

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/textview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:text="@string/hello"/>

Каковы преимущества производительности / удобства использования XML для этого?

Если программист предпочитает использовать код поверх XML, какие дополнительные соображения следует учитывать?

Ответы [ 4 ]

7 голосов
/ 05 июля 2011

Каковы преимущества удобства использования XML для этого?

  1. Отделение логики от представления. Это действительно помогает в больших проектах, когда вам нужно реорганизовать некоторый код. Если он тесно связан с пользовательским интерфейсом, эта работа может очень легко занять много времени, если большая часть логики представления находится в коде.
  2. Структура XML хорошо коррелирует со структурой пользовательского интерфейса, то есть древовидной структурой.

Каковы преимущества производительности при использовании XML для этого?

Это все зависит от реализации, я полагаю. Я сомневаюсь, что есть какие-то заметные различия в производительности, но я, честно говоря, не знаю достаточно, чтобы точно сказать, какими они могут быть.

4 голосов
/ 05 июля 2011

Вы можете сослаться на Почему использование XML для создания GUI является хорошей практикой в ​​Android .

Для меня это больше похоже на личный вкус. Я пришел из фона Java Swing. Когда я занимаюсь разработкой приложений для настольных компьютеров, я предпочитаю программировать графический интерфейс.

Однако, когда речь заходит о разработке под Android, я буду придерживаться разработки графического интерфейса на основе XML, хотя я предпочитаю использовать код вместо XML.

Это потому, что я склонен следовать стилю и мифологии, предпочитаемым большинством, что облегчает мне получение технической поддержки и учебных пособий.

2 голосов
/ 05 июля 2011

XML-файлы интегрированы в структуру ресурсов, это означает, что вы можете легко указать разные макеты для разных размеров экрана (и плотности, языков, ...). Это важно в Android из-за разнообразия устройств.

Конечно, вы можете сделать это программно, но вы добавите много ненужного раздувания кода, и ваше приложение, вероятно, будет сложнее поддерживать.

Состояние редактора XML макета в настоящее время является проблемой, но в Google IO были сделаны объявления / демонстрации того, что значительные улучшения находятся в процессе ... не могу ждать.

2 голосов
/ 05 июля 2011

При компиляции макет XML преобразуется в код Java, поэтому производительность должна быть одинаковой. Я предпочитаю использовать XML, так как многие документы и учебники используют его; это способ написания пользовательского интерфейса для Android. Кроме того, XML легче использовать повторно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...