fbpx

Course Content

Total learning: 13 lessons Time: 1 hour
  • Разработка приложения Фитнес-календарь  0/11

    • Lecture1.1
      Описание проекта 05 мин. Preview
    • Lecture1.2
      Разработка графического интерфейса для отображения списка запланированных тренировок 10 мин. Preview
    • Lecture1.3
    • Lecture1.4
    • Lecture1.5
    • Lecture1.6
    • Lecture1.7
    • Lecture1.8
    • Lecture1.9
    • Lecture1.10
    • Lecture1.11
    • Lecture1.12
    • Lecture1.13

Разработка графического интерфейса для отображения списка запланированных тренировок

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

Создание Адаптера

Для отображения списка запланированных тренировок будем использовать RecyclerView. Давайте создадим адаптер MainAdapter.kt

Код адаптера можно посмотреть по ссылке на Github 

Создание UI Ячейки для отображения данных

Верстку ячейки вы можете найти по ссылке на Github 

Наполнение списка мок-данными для проверки

Чтобы проверить, как будет выглядеть наш список, давайте создадим фэйковый репозиторий, который будет отдавать фэйковые данные для демонстрации и проверки нашего списка. Мок-репозиторий будет выглядеть так:

object ReminderRepository {

    fun getMockRepository(): List<ReminderData> {
        val swimming = ReminderData(
            id = 0,
            name = "Плавание",
            days = listOf<String>("Понедельник", "Среда", "Пятница")
        )

        val running = ReminderData(
            id = 0,
            name = "Бег",
            days = listOf<String>("Вторник", "Четверг", "Суббота")
        )

        val cycling = ReminderData(
            id = 0,
            name = "Езда на велосипеде",
            days = listOf<String>("Понедельник", "Вторник")
        )
        return listOf<ReminderData>(swimming, running, cycling)
    }
}

Ну и в методе onViewCreated() фрагмента FirstFragment связываем данные через адаптер и recyclerView

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)

    textViewNoReminders = view.findViewById(R.id.textViewNoReminders)
    progressBar = view.findViewById(R.id.progressBar)
    recyclerView = view.findViewById(R.id.recyclerViewReminders)

    recyclerView.addItemDecoration(
        DividerItemDecoration(
            view.context,
            DividerItemDecoration.VERTICAL
        )
    )

    mainAdapter = MainAdapter(this, ReminderRepository.getMockRepository())
    recyclerView.adapter = mainAdapter
    recyclerView.visibility = View.VISIBLE
    progressBar.visibility = View.GONE

    fab.setOnClickListener {
        findNavController().navigate(R.id.action_FirstFragment_to_SecondFragment)
    }
}

Обратите внимание на метод addItemDecoration() который позволяет добавить разделители между ячейками без создания дополнительных View в самой ячейке. Вот и всё! Мы создали UI приложения и готовы двигаться дальше – теперь нам нужно реализовать отображение уведомлений для напоминаний.

Весь код, который мы сделали в этом уроке вы сможете найти по ссылке  в ветке feature/01-add-recycler-view-

Следующие уроки и исходники доступны только для зарегистрированных пользователей. Зарегистрируйтесь бесплатно.