63 lines
3.4 KiB
Markdown
63 lines
3.4 KiB
Markdown
|
[![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: Создать переход при клике на кнопку с третьего на первый фрагмент. Подробнее смотреть в файле навигации!
|
|||
|
}
|
|||
|
```
|