Освой Android играючи

Сайт Александра Климова

Шкодим

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

Palette

Раздел посвящён стандартным компонентам - кнопки, текстовые поля, переключатели и т.д. В студии наиболее употребительные компоненты находились на панели инструментов под названием Palette. В реальности, готовых компонентов гораздо больше.

Compose

Compose

В Compose нет панели инструментов, но сами компоненты никуда не делись. Поэтому помещу часто используемые компоненты в этот раздел.

ButtonGroup (Material 3 Expressive)

LoadingIndicator, ContainedLoadingIndicator

Spacer

SplitButtonLayout

Text, ClickableText

TextField, OutlinedTextField


XML + View

XML+View

На панели Palette находятся часто используемые компоненты пользовательского интерфейса: View, Layouts, ViewGroup.

Виджет — это объект View, который служит интерфейсом для взаимодействия с пользователем. Если сказать предыдущую умную фразу простым языком, понятным даже коту, то виджеты — это обычные элементы управления: кнопочки, текстовые поля, флажки, переключатели, списки.

В сети можно встретить разные способы наименования на русском - контрол, вьюха, представление и т.д. Мы с вами будем использовать термин компонент. А знаете почему? Берём крайние буквы слова, отсчитываем по три следующих символа и выкидываем их на свалку. Что остаётся? Ну вы поняли - компонент. Красиво спрятались.

Кстати, в последних версиях Android Studio в режиме Design появилась панель Component Tree, хотя раньше в Eclipse аналогичная вкладка называлась Outline. Видимо, разработчики из Гугла читали эту статью и внесли поправки.

Стандартные элементы имеют привычные свойства: ширина, высота, цвет и т.п.

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

Список компонентов по алфавиту

AdapterViewFlipper

AdView

AutoCompleteTextView, MultiAutoCompleteTextView

BottomAppBar

BottomNavigationView

Button

CalendarView

CardView

CheckBox

CheckedTextView

ChipGroup и Chip

Chronometer

DatePicker

EditText (Plain Text, Password, E-mail и т.д.)

ExpandableListView

FloatingActionButton

<fragment> (убрали)

GestureOverlayView

GridView (устарело)

ImageButton

ImageFilterButton

ImageFilterView

ImageSwitcher

ImageView

ListPopupWindow

ListView (устарело)

MaterialButton

MaterialToolbar

MockView

NavigationView

NavHostFragment

NestedScrollView

NumberPicker

ProgressBar

ProgressBar (Horizontal)

QuickContactBadge

RadioGroup/RadioButton

RatingBar

RecyclerView

requestFocus

SearchView

SeekBar, SeakBar (Discrete)

ScrollView, HorizontalScrollView

Spinner

StackView

Switch

SurfaceView

TabHost (устарело)

Text Clock

TextInputEditText

TextSwitcher

TextureView

TextView

TimePicker

ToggleButton

Toolbar

VideoView

View

ViewAnimator

ViewFlipper

ViewPager

ViewPager2

ViewStub

ViewSwitcher

WebView

ZoomControls

Макеты

О макетах

<include>

AppBarLayout

ConstraintLayout, Guideline

CoordinatorLayout

FrameLayout

GridLayout (устарело)

LinearLayout (horizontal) и LinearLayout (vertical)

RelativeLayout (устарело)

Space

SwipeRefreshLayout

TabLayout, TabItem

TableLayout и TableRow

TextInputLayout

Устаревшие компоненты

Раньше на сайте были описания устаревших компонентов. Я решил их удалить, чтобы не мозолили глаза. В их число попали Gallery, AnalogClock, DigitalClock, SlidingDrawer, MediaController.

Дополнительное чтение

Получить размеры компонентов при запуске приложения (Закрытая зона/4-й курс)

Собственный фон для элементов

Программное добавление и удаление виджета

Реклама