diff --git a/app/src/main/java/ru/practicum/android/diploma/ui/fragments/FavouritesFragment.kt b/app/src/main/java/ru/practicum/android/diploma/ui/fragments/FavouritesFragment.kt
new file mode 100644
index 0000000000..97c712fd28
--- /dev/null
+++ b/app/src/main/java/ru/practicum/android/diploma/ui/fragments/FavouritesFragment.kt
@@ -0,0 +1,28 @@
+package ru.practicum.android.diploma.ui.fragments
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+import ru.practicum.android.diploma.databinding.FragmentFavouritesBinding
+
+class FavouritesFragment : Fragment() {
+
+ private var _binding: FragmentFavouritesBinding? = null
+ private val binding get() = _binding!!
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View {
+ _binding = FragmentFavouritesBinding.inflate(inflater, container, false)
+ return binding.root
+ }
+
+ override fun onDestroyView() {
+ super.onDestroyView()
+ _binding = null
+ }
+}
diff --git a/app/src/main/java/ru/practicum/android/diploma/ui/fragments/FilterFragment.kt b/app/src/main/java/ru/practicum/android/diploma/ui/fragments/FilterFragment.kt
new file mode 100644
index 0000000000..5dcaa6601b
--- /dev/null
+++ b/app/src/main/java/ru/practicum/android/diploma/ui/fragments/FilterFragment.kt
@@ -0,0 +1,38 @@
+package ru.practicum.android.diploma.ui.fragments
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+import androidx.navigation.fragment.findNavController
+import ru.practicum.android.diploma.R
+import ru.practicum.android.diploma.databinding.FragmentFilterBinding
+
+class FilterFragment : Fragment() {
+
+ private var _binding: FragmentFilterBinding? = null
+ private val binding get() = _binding!!
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View {
+ _binding = FragmentFilterBinding.inflate(inflater, container, false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ binding.buttonBackToSearchFromFilter.setOnClickListener {
+ findNavController().navigate(R.id.mainFragment)
+ }
+ }
+
+ override fun onDestroyView() {
+ super.onDestroyView()
+ _binding = null
+ }
+}
diff --git a/app/src/main/java/ru/practicum/android/diploma/ui/fragments/SearchFragment.kt b/app/src/main/java/ru/practicum/android/diploma/ui/fragments/SearchFragment.kt
new file mode 100644
index 0000000000..af72f49da9
--- /dev/null
+++ b/app/src/main/java/ru/practicum/android/diploma/ui/fragments/SearchFragment.kt
@@ -0,0 +1,42 @@
+package ru.practicum.android.diploma.ui.fragments
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+import androidx.navigation.fragment.findNavController
+import ru.practicum.android.diploma.R
+import ru.practicum.android.diploma.databinding.FragmentSearchBinding
+
+class SearchFragment : Fragment() {
+
+ private var _binding: FragmentSearchBinding? = null
+ private val binding get() = _binding!!
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View {
+ _binding = FragmentSearchBinding.inflate(inflater, container, false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ binding.buttonToFilter.setOnClickListener {
+ findNavController().navigate(R.id.action_searchFragment_to_filterFragment)
+ }
+
+ binding.buttonToVacancy.setOnClickListener {
+ findNavController().navigate(R.id.action_searchFragment_to_vacancyFragment)
+ }
+ }
+
+ override fun onDestroyView() {
+ super.onDestroyView()
+ _binding = null
+ }
+}
diff --git a/app/src/main/java/ru/practicum/android/diploma/ui/fragments/TeamFragment.kt b/app/src/main/java/ru/practicum/android/diploma/ui/fragments/TeamFragment.kt
new file mode 100644
index 0000000000..effff7c52e
--- /dev/null
+++ b/app/src/main/java/ru/practicum/android/diploma/ui/fragments/TeamFragment.kt
@@ -0,0 +1,28 @@
+package ru.practicum.android.diploma.ui.fragments
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+import ru.practicum.android.diploma.databinding.FragmentTeamBinding
+
+class TeamFragment : Fragment() {
+
+ private var _binding: FragmentTeamBinding? = null
+ private val binding get() = _binding!!
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View {
+ _binding = FragmentTeamBinding.inflate(inflater, container, false)
+ return binding.root
+ }
+
+ override fun onDestroyView() {
+ super.onDestroyView()
+ _binding = null
+ }
+}
diff --git a/app/src/main/java/ru/practicum/android/diploma/ui/fragments/VacancyFragment.kt b/app/src/main/java/ru/practicum/android/diploma/ui/fragments/VacancyFragment.kt
new file mode 100644
index 0000000000..fe69ea1515
--- /dev/null
+++ b/app/src/main/java/ru/practicum/android/diploma/ui/fragments/VacancyFragment.kt
@@ -0,0 +1,38 @@
+package ru.practicum.android.diploma.ui.fragments
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+import androidx.navigation.fragment.findNavController
+import ru.practicum.android.diploma.R
+import ru.practicum.android.diploma.databinding.FragmentVacancyBinding
+
+class VacancyFragment : Fragment() {
+
+ private var _binding: FragmentVacancyBinding? = null
+ private val binding get() = _binding!!
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View {
+ _binding = FragmentVacancyBinding.inflate(inflater, container, false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ binding.buttonBackToSearchFromVacancy.setOnClickListener {
+ findNavController().navigate(R.id.mainFragment)
+ }
+ }
+
+ override fun onDestroyView() {
+ super.onDestroyView()
+ _binding = null
+ }
+}
diff --git a/app/src/main/java/ru/practicum/android/diploma/ui/root/RootActivity.kt b/app/src/main/java/ru/practicum/android/diploma/ui/root/RootActivity.kt
index b02bd17d18..f77ded41ef 100644
--- a/app/src/main/java/ru/practicum/android/diploma/ui/root/RootActivity.kt
+++ b/app/src/main/java/ru/practicum/android/diploma/ui/root/RootActivity.kt
@@ -2,6 +2,7 @@ package ru.practicum.android.diploma.ui.root
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
+import androidx.navigation.fragment.NavHostFragment
import ru.practicum.android.diploma.BuildConfig
import ru.practicum.android.diploma.R
@@ -9,6 +10,8 @@ class RootActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_root)
+ val navHostFragment = supportFragmentManager.findFragmentById(R.id.container) as NavHostFragment
+ val navController = navHostFragment.navController
// Пример использования access token для HeadHunter API
networkRequestExample(accessToken = BuildConfig.HH_ACCESS_TOKEN)
diff --git a/app/src/main/res/layout/activity_root.xml b/app/src/main/res/layout/activity_root.xml
index ea46b92d7b..e5a414077a 100644
--- a/app/src/main/res/layout/activity_root.xml
+++ b/app/src/main/res/layout/activity_root.xml
@@ -6,14 +6,18 @@
android:layout_height="match_parent"
tools:context=".ui.root.RootActivity">
-
+ app:layout_constraintTop_toTopOf="parent"
+ app:navGraph="@navigation/main_navigation_graph" />
+
+
+
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_favourites.xml b/app/src/main/res/layout/fragment_favourites.xml
new file mode 100644
index 0000000000..97b73e1ce0
--- /dev/null
+++ b/app/src/main/res/layout/fragment_favourites.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_filter.xml b/app/src/main/res/layout/fragment_filter.xml
new file mode 100644
index 0000000000..82b7e40871
--- /dev/null
+++ b/app/src/main/res/layout/fragment_filter.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_search.xml b/app/src/main/res/layout/fragment_search.xml
new file mode 100644
index 0000000000..d6dadaf2d1
--- /dev/null
+++ b/app/src/main/res/layout/fragment_search.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_team.xml b/app/src/main/res/layout/fragment_team.xml
new file mode 100644
index 0000000000..535f939f4a
--- /dev/null
+++ b/app/src/main/res/layout/fragment_team.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_vacancy.xml b/app/src/main/res/layout/fragment_vacancy.xml
new file mode 100644
index 0000000000..4566d9fe60
--- /dev/null
+++ b/app/src/main/res/layout/fragment_vacancy.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/navigation/main_navigation_graph.xml b/app/src/main/res/navigation/main_navigation_graph.xml
new file mode 100644
index 0000000000..a3522ce92f
--- /dev/null
+++ b/app/src/main/res/navigation/main_navigation_graph.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+