Мои исследования Head First Android Development 3rd Edition: Главы 3 и 4

Добро пожаловать в мой цикл статей о Head First Android Development — 3rd Edition! Этот блог является продолжением серии постов, которые я буду писать о чтении и работе с Head First Android Development. В этом блоге речь пойдет конкретно о третьей и четвертой главах. 

Вы новичок в этой серии? Пожалуйста, начните с начала серии здесь. 

Примечание: Этот блог может содержать партнерские ссылки на книги или продукты, на которые я ссылаюсь. Переход по этим ссылкам может привести к получению вознаграждения.

Все начинает становиться интересным! 

В следующих двух главах все начинает набирать обороты! Третья и четвертая главы включают в себя следующие основные идеи:

  • Более глубокое погружение в макеты
  • Действительно глубокое погружение в макеты с ограничениями
    • Черновики
    • Работа с ConstraintLayouts

Глава 3

В третьей главе мы получили много инструментов в свой пояс, что подготовило нас к главе 4 о ConstraintLayouts.

В этой главе мы немного углубимся в несколько различных типов макетов и их общие случаи использования, а именно:

  • LinearLayouts — дочерние представления, расположенные вертикально или горизонтально.
  • FrameLayouts — дочерние представления укладываются в стопку
  • ScrollViews — использование для обертывания макетов с полосой прокрутки.

Каждый тип макета был хорошо представлен с небольшим примером приложения для сборки. В этой главе (как и в предыдущих) для закрепления полученных знаний используются задания в тексте. Самыми запоминающимися (на мой взгляд) были задания «Магнит для холодильника», которые позволяют увидеть часть кода и заполнить пробелы.

Важным моментом в этой главе было то, что все макеты расширяют класс View, расширяя класс ViewGroup. Эти макеты требуют, чтобы почти все элементы пользовательского интерфейса Android объявляли свою высоту и ширину и получали общий API для взаимодействия. Кроме того, именно поэтому разработчик может вложить макеты, чтобы создать именно то, что нужно для его приложения.

Например, вы можете иметь линейный макет с вертикальной ориентацией и два дочерних линейных макета с горизонтальной ориентацией, чтобы иметь два ряда элементов, но эти ряды расположены вертикально. Хотя в следующей главе мы быстро выясним, что это не лучший способ решения задачи.

Глава 4

Сложное расположение элементов с использованием вложенных макетов не является лучшей практикой в Android. В этой главе мы узнаем, что они заставляют Android OS выполнять больше работы, чем следует, поскольку каждый макет и представление превращаются в объект в коде. 

Решением (и мясом этой главы) является ConstraintLayout. Я видел много ConstraintLayout во время своей начальной курсовой работы в Google. Оглядываясь назад, я не уверен, что курс объяснял его (или его обоснование) так же хорошо, как книга.

Чтобы научить читателя этой концепции, в тексте объясняется представление чертежа в редакторе дизайна Android Studio и экосистема библиотек Android Jetpack. Оба инструмента необходимы для построения сложного пользовательского интерфейса с использованием ConstraintLayouts.

В четвертой главе подробно рассматриваются многочисленные возможности этого макета, включая

  • Ограничения
  • Отклонение
  • Руководящие принципы
  • Барьеры
  • Цепочки
  • Потоки

Кроме того, в этой главе рассматриваются все необходимые инструменты Android Studio в окне Design View для работы с ConstraintLayouts. 

Использование всех вышеперечисленных инструментов было довольно увлекательным, и я с нетерпением жду возможности проектировать и создавать свои приложения с их использованием. Больше всего меня заинтересовало использование барьеров для динамического изменения размеров дочерних представлений, которые могут изменить общую компоновку. Меня также интересуют цепочки и потоки для правильного выравнивания элементов.

<androidx.constraintlayout.widget.Barrier  
 android:id="@+id/barrier1"  
 android:layout_width="wrap_content"  
 android:layout_height="wrap_content"  
 app:barrierDirection="bottom"  
 app:constraint_referenced_ids="editTextTextMultiLine,editTextTextMultiLine2"  
 tools:layout_editor_absoluteY="24dp" />
Вход в полноэкранный режим Выход из полноэкранного режима
<androidx.constraintlayout.helper.widget.Flow  
 android:id="@+id/flow"  
 android:layout_width="0dp"  
 android:layout_height="wrap_content"  
 android:layout_marginTop="24dp"  
 app:constraint_referenced_ids="button5,button6,button4,button8,button7,button9"  
 app:flow_wrapMode="chain"  
 app:layout_constraintEnd_toEndOf="parent"  
 app:layout_constraintStart_toStartOf="parent"  
 app:layout_constraintTop_toTopOf="parent" />
Вход в полноэкранный режим Выход из полноэкранного режима

Я лишь поверхностно касаюсь того, что вы найдете в этом тексте!

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

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

Что вас радует в перспективе прочтения этой книги?

Источники

Head First Android Development, 3rd Edition — Dawn Griffiths, David Griffiths

Оцените статью
devanswers.ru
Добавить комментарий