simple-nav/README.md
s1ngle0f b4fe30358b
Some checks failed
Merge core/template-android-project to this repo / merge-if-needed (push) Failing after 15s
Шаблон для разработки
2024-08-05 00:09:01 +03:00

63 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[![Android Studio version](https://img.shields.io/endpoint?url=https%3A%2F%2Fsicampus.ru%2Fgitea%2Fcore%2Fdocs%2Fraw%2Fbranch%2Fmain%2Fandroid-studio-label.json)](https://sicampus.ru/gitea/core/docs/src/branch/main/how-upload-project.md)
# Практическая работа. Курс Kotlin. Практическая 3.8
Данная практическая работа направлена на реализацию переходов между фрагментами
## Дополнение XML разметки
Первым делом необходимо дополнить разметку XML для корректного использования ссылок внутри Kotlin кода. Необходимые места для заполнения представлены ниже.
Реализовать фрагмент для навигации внутри файла *activity_main.xml*. Фрагмент должен растягиваться по родительскому объекту, иметь уникальный идентификатор `@+id/nav_host_fragment` и обозначить параметр navGraph равный `nav_graph`
```xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<!-- TODO: Реализовать здесь -->
</androidx.constraintlayout.widget.ConstraintLayout>
```
Создать переход из третьего фрагмента в первый с уникальным идентификатором `@+id/action_thirdFragment_to_firstFragment` внутри файла *nav_graph.xml*
```xml
...
<fragment
android:id="@+id/thirdFragment"
android:name="ru.myitschool.work.ThirdFragment"
android:label="Third Fragment">
<!-- TODO: Реализовать здесь -->
</fragment>
...
```
## Дополнение Kotlin кода
Далее необходимо написать дополнить код для взаимодействия с кнопками для перехода
FirstFragment.kt
```kotlin
...
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val fromFirstToSecond: Button = view.findViewById(R.id.fromFirstToSecond)
val fromFirstToThird: Button = view.findViewById(R.id.fromFirstToThird)
// TODO: Создать переход при клике на кнопку с первого на второй фрагмент. Подробнее смотреть в файле навигации!
// TODO: Создать переход при клике на кнопку с первого на третий фрагмент. Подробнее смотреть в файле навигации!
}
```
ThirdFragment.kt
```kotlin
...
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val fromThirdToFirst: Button = view.findViewById(R.id.fromThirdToFirst)
// TODO: Создать переход при клике на кнопку с третьего на первый фрагмент. Подробнее смотреть в файле навигации!
}
```