Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
351 of 502 menu
◀ ▶

Класс View

Класс View - корень иерархии виджетов Android. В XML его задают тегом View или наследуют TextView, Button и другие классы. Размер и id задают атрибутами android:layout_width и android:id. Из кода элемент ищут через findViewById и вешают обработчики через setOnClickListener.

Синтаксис

<View android:id="@+id/panel" android:layout_width="match_parent" android:layout_height="48dp" />

Параметры

Параметр Описание
android:id Идентификатор для поиска из Kotlin через R.id.
android:layout_width Ширина: match_parent, wrap_content или размер в dp.
android:layout_height Высота элемента на экране.
android:visibility Видимость: visible, invisible, gone. Меняют и методом setVisibility.
android:padding Отступ содержимого от краёв. Задают и через setPadding.
android:enabled Если false, элемент не реагирует на нажатия.
android:clickable Разрешает обработку нажатий на View.

Методы

Метод Описание
setOnClickListener Вешает обработчик нажатия на элемент.
setVisibility Показывает или прячет View на экране.
setEnabled Включает или отключает реакцию на действия.
setPadding Задаёт отступы в пикселях.
findViewById Ищет дочерний View по id из разметки.

Пример

Давайте нарисуем полоску View в LinearLayout:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <View android:id="@+id/panel" android:layout_width="match_parent" android:layout_height="48dp" android:background="#BDBDBD" /> <TextView android:id="@+id/label" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="abcde" /> </LinearLayout>

На экране сверху будет серая полоска, под ней текст "abcde".

Пример

Давайте найдём panel из активности и спрячем его:

import android.os.Bundle import android.view.View import androidx.appcompat.app.AppCompatActivity class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val panel = findViewById<View>(R.id.panel) panel.visibility = View.GONE } }

После запуска серая полоска не отрисуется, останется только текст.

Смотрите также

  • класс TextView,
    который выводит текст поверх View
  • класс LinearLayout,
    который ставит дочерние View в ряд или столбец
  • класс LayoutInflater,
    который создаёт View из XML файла
  • метод findViewById,
    который связывает разметку с кодом
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить