Класс 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,
который связывает разметку с кодом